03-Docker基础操作
以下是根据你提供的笔记整理的 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 on2.2 创建 macvlan 网络
docker network create -d macvlan \
--subnet=10.2.20.0/24 \
--gateway=10.2.20.254 \
-o parent=ens192 macnet2.3 下载并运行 OpenWrt 镜像
docker pull sulinggg/openwrt:x86_64
docker run --restart always \
--name openwrt -d \
--network macnet \
--privileged sulinggg/openwrt:x86_64 /sbin/init2.4 进入 OpenWrt 容器并配置网络
docker exec -it openwrt bash
vim /etc/config/network
/etc/init.d/network restart2.5 OpenWrt 旁路由设置
- 接口 → LAN → 修改 → 基本设置:清空 DNS,关闭 DHCP
- IPv6 全部禁用
- 物理设置:去掉桥接接口
- 防火墙 → 自定义规则:
iptables -t nat -I POSTROUTING -j MASQUERADE3. 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 lvm24.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 fast4.3 安装 Docker
yum install docker-ce -y
docker -v4.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 docker5. 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 容器id9. 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 podman11.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/certbot12. Podman Pod 示例(MongoDB + mongo-express)
12.1 创建 Pod
podman pod create --name my-pod -p 8081:8081
podman pod list12.2 创建数据目录
mkdir /home/dministrator/mongo_data12.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/mongo12.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月