当前位置: 首页 > article >正文

如何在openwrt中使用docker(命令行版)

1. 前提条件

在 OpenWRT 上运行 Docker,您需要确保以下条件满足:

  1. 支持 Docker 的设备:您的路由器或设备需要有足够的存储空间(建议至少 16GB)和 RAM(建议至少 512MB)。
  2. 已安装 OpenWRT:您的设备运行的是支持 Docker 的 OpenWRT 版本(通常是 x86_64 或一些高性能 ARM 架构设备)。
  3. 访问 SSH:能够通过 SSH 访问路由器进行命令行操作。

2. 安装 Docker

在 OpenWRT 中安装 Docker 包。

步骤 1:更新软件包列表
opkg update
步骤 2:安装 Docker

使用以下命令安装 Docker 和 Docker Compose:

opkg install docker docker-compose
已经安装过了,没安装的话略有不同

如果没有找到这些软件包,您可能需要添加社区或第三方源,例如 luci-app-dockerman(提供 Web 管理界面):

opkg install luci-app-dockerman

3. 启用 Docker 服务

Docker 服务需要在 OpenWRT 中手动启用并启动。

步骤 1:启用 Docker 服务
/etc/init.d/dockerd enable
步骤 2:启动 Docker 服务
/etc/init.d/dockerd start
步骤 3:检查 Docker 状态

验证 Docker 是否正常运行:

docker info
已经安装过,所以显示内容较多

如果看到 Docker 的运行信息,则表示安装成功。


4. 使用 Docker

以下是一些常用的 Docker 操作命令:

运行容器

例如,运行一个简单的 Nginx 容器:

docker run -d -p 80:80 --name nginx-container nginx
列出容器

查看正在运行的容器:

docker ps

查看所有容器(包括停止的容器):

docker ps -a
停止容器

停止运行中的容器:

docker stop nginx-container
删除容器

删除停止的容器:

docker rm nginx-container
拉取镜像

从 Docker Hub 拉取镜像:

docker pull ubuntu:latest
列出镜像

查看本地的 Docker 镜像:

docker images

5. 配置持久存储

由于 OpenWRT 的闪存空间较小,建议将 Docker 数据存储到外接存储设备(例如 USB 或挂载的硬盘)上。

步骤 1:挂载外部存储

确保外部存储设备已挂载。例如:

mount /dev/sda1 /mnt/docker-data
步骤 2:配置 Docker 存储路径

编辑 Docker 配置文件:

vi /etc/docker/daemon.json

添加以下内容,将 Docker 的存储路径设置为挂载的目录:

{ "data-root": "/mnt/docker-data" }
步骤 3:重启 Docker 服务
/etc/init.d/dockerd restart

6. 使用 LuCI 管理 Docker(下一篇重点介绍如何使用webui安装docker)

如果您安装了 luci-app-dockerman,可以通过 Web 界面管理 Docker 容器。

步骤 1:进入 LuCI

在浏览器中打开 OpenWRT 的 LuCI Web 界面(默认地址为 192.168.1.1)。

步骤 2:访问 Docker 管理

进入 服务 > Docker 或 服务 > Dockerman,可以看到 Docker 容器的管理界面,包括创建、启动、停止容器等操作。


7. 安全性注意事项

  • 避免直接暴露 Docker 容器:在 Docker 中运行的服务建议配置防火墙规则,防止直接暴露在互联网上。
  • 分配合适的资源:为容器分配适当的 CPU 和内存,以避免影响路由器的核心功能。


http://www.kler.cn/a/451876.html

相关文章:

  • leetcode22:括号问题
  • 《探寻神经网络RNN:从原理到应用的奇幻之旅》
  • 基于Java的在线教育系统
  • 《Swift 字面量》
  • 【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】
  • DENIAL-OF-SERVICE POISONING ATTACKS ON LARGE LANGUAGE MODELS
  • 5-Gin 静态文件服务 --[Gin 框架入门精讲与实战案例]
  • KAFKA 权威指南笔记(一)究竟应该配置多少个BROKER?
  • 【每日学点鸿蒙知识】上架流程、h5返回收拾拦截、两个枚举类型之间转换、hvigorw命令、绘制本地图片
  • 代码随想录算法训练营第一天 | 704. 二分查找、 27. 移除元素、977.有序数组的平方
  • Python知识图谱框架
  • 22【AUTOSAR自适应平台设计的概述01】杂项概念介绍
  • Hive其十,优化和数据倾斜
  • 要查询 `user` 表中 `we_chat_open_id` 列不为空的用户数量
  • 多边形内角问题@三角形的基本性质@平面镶嵌问题
  • CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践技术
  • Python PDF批量加密工具
  • 妙用编辑器:如何使用编辑器的筛选功能更高效的阅读日志
  • 在 macOS 和 Windows 平台上使用 SVN 的完整指南20241225
  • Golang的性能监控指标