以下是根据你提供的笔记整理的 Markdown 格式文档,结构清晰,便于查阅:

Docker 与 OpenWrt 常用操作笔记

1. Nginx 容器操作

# 拉取 nginx 镜像
docker pull nginx

# 创建并启动容器
docker run --name mynginx -d -p 80:80 nginx
  • --name:指定容器名称
  • -p:端口映射
  • -d:后台运行

2. Docker 安装 OpenWrt 旁路由

2.1 开启网卡混杂模式(ESXi 需开启混杂模式)

sudo ip link set ens192 promisc on
sudo ip link set eno1 promisc on

2.2 创建 macvlan 网络

docker network create -d macvlan \
  --subnet=10.2.20.0/24 \
  --gateway=10.2.20.254 \
  -o parent=ens192 macnet

2.3 下载并运行 OpenWrt 镜像

docker pull sulinggg/openwrt:x86_64

docker run --restart always \
  --name openwrt -d \
  --network macnet \
  --privileged sulinggg/openwrt:x86_64 /sbin/init

2.4 进入 OpenWrt 容器并配置网络

docker exec -it openwrt bash
vim /etc/config/network
/etc/init.d/network restart

2.5 OpenWrt 旁路由设置

  • 接口 → LAN → 修改 → 基本设置:清空 DNS,关闭 DHCP
  • IPv6 全部禁用
  • 物理设置:去掉桥接接口
  • 防火墙 → 自定义规则:
iptables -t nat -I POSTROUTING -j MASQUERADE

3. Redis 容器操作

# 拉取镜像
docker pull redis

# 创建启动容器
docker run --name myredis -d -p 6379:6379 redis

# 进入容器
docker exec -it myredis bash
redis-cli
集群节点数建议为单数(≥3),用于选举机制。

4. Docker 安装与配置(CentOS)

4.1 安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4.2 添加阿里云 Docker 源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast

4.3 安装 Docker

yum install docker-ce -y
docker -v

4.4 配置镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://m0oy2ptq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

5. Docker 数据卷操作

docker volume create       # 创建卷
docker volume inspect      # 查看卷信息
docker volume ls           # 列出所有卷
docker volume prune        # 删除未使用卷
docker volume rm           # 删除指定卷

挂载数据卷

docker run --name testaredis -v testa:/data -d redis
docker run --name testaredis -v testa:/data -v testb:/var/log -d redis

查看存储驱动:

docker info | grep Driver
⚠️ 注意:2375 端口存在安全风险(未授权访问)。

6. 容器生命周期管理

命令说明
docker run新建并启动容器
docker start / stop / pause / unpause启动/停止/暂停/恢复容器
docker exec进入容器执行命令
docker logs查看容器日志
docker ps查看运行中容器
docker ps -a查看所有容器
docker rm删除容器
docker inspect查看容器详细信息

7. Docker 网络模式

模式参数说明
host--net=host与宿主机共享网络
container--net=容器id/名使用其他容器的网络
bridge--net=bridge默认桥接模式
none--net=none无网络

常用网络命令

docker network list                     # 查看网络
docker network inspect bridge           # 查看桥接网络
docker inspect 容器id                   # 查看容器 IP
docker network connect 网络名 容器名     # 连接容器到网络
docker network disconnect 网络名 容器名  # 断开网络
docker network prune                    # 清理未使用网络
docker network rm 网络名                 # 删除网络

8. 容器自启动配置

# 设置 Docker 服务自启动
systemctl enable docker

# 启动容器时添加自启动
docker run --restart=always

# 已运行容器更新自启动策略
docker update --restart=always 容器id

9. Docker 服务与版本信息

systemctl start docker      # 启动 Docker
docker version              # 版本详情
docker -v                   # 版本号
docker info                 # 详细信息
docker --help               # 帮助命令

10. 镜像管理

docker images -a            # 列出所有镜像
docker search 镜像名         # 查找镜像
docker pull 镜像名:标签       # 拉取镜像
docker push 镜像名:标签       # 推送镜像
docker commit 容器名 镜像名   # 基于容器创建镜像
docker build                # 通过 Dockerfile 构建镜像
docker rmi 镜像名:标签        # 删除镜像

11. Podman 配置与使用(Rootless 模式)

11.1 安装 Podman

sudo apt update
sudo apt install podman

11.2 解决共享挂载警告

sudo mount --make-shared /

11.3 配置镜像加速(Daocloud)

编辑 /etc/containers/registries.conf

[[registry]]
location = "docker.io"
[[registry.mirror]]
location = "docker.m.daocloud.io"

[[registry]]
location = "gcr.io"
[[registry.mirror]]
location = "docker.m.daocloud.io"

11.4 测试拉取镜像

podman pull docker.io/library/mongo
podman pull docker.io/library/certbot

12. Podman Pod 示例(MongoDB + mongo-express)

12.1 创建 Pod

podman pod create --name my-pod -p 8081:8081
podman pod list

12.2 创建数据目录

mkdir /home/dministrator/mongo_data

12.3 运行 MongoDB 容器

podman run -d \
  --pod my-pod \
  --name my_mongodb \
  -e MONGO_INITDB_ROOT_USERNAME=tech \
  -e MONGO_INITDB_ROOT_PASSWORD=carry \
  -v /home/dministrator/mongo_data:/data/db \
  docker.io/library/mongo

12.4 运行 mongo-express 容器

podman run -d \
  --pod my-pod \
  --name my_mongodb_express \
  -e ME_CONFIG_MONGODB_SERVER=localhost \
  -e ME_CONFIG_MONGODB_ADMINUSERNAME=tech \
  -e ME_CONFIG_MONGODB_ADMINPASSWORD=carry \
  docker.io/library/mongo-express

访问地址:localhost:8081,默认用户名 admin,密码 pass


13. 容器编排工具简介

工具说明
Apache Mesos面向节点资源管理
Docker Swarm适合小规模(约10台)容器集群管理
Kubernetes当前主流容器编排趋势

整理时间:2025年3月

标签: none

添加新评论