导航菜单

制作镜像方式一:docker commit

陆兴东 2026-06-04 240 浏览 Docker

基于运行中的容器手动打包新镜像,适合快速实验,不推荐用于生产。

 操作流程

# 1. 启动基础容器
docker run -dit --name centos8 centos:8

# 2. 进入容器配置环境(如替换 yum 源)
rm -rf /etc/yum.repos.d/*
cat > /etc/yum.repos.d/test.repo << 'EOF'
[BaseOS]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=0
enabled=1

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=0
enabled=1
EOF

# 3. 安装应用
yum install nginx -y

# 4. 修改应用内容(如编辑 nginx 首页)

# 5. 提交为镜像
docker commit -m "commit a nginx image" 696e07f21cdb mynginx:v0.1

# 6. 运行新镜像
docker run -dit --name mynginx -p 80:80 mynginx:v0.1 nginx -g "daemon off;"

致命缺点

缺点
说明
黑盒操作
容器内做了什么修改无人知晓,无法审计与复现
无高级特性
不支持健康检查、环境变量预设、启动命令声明等镜像高级能力

Docker 架构补充

要点
说明
架构
C/S 架构,命令在服务端 dockerd 执行,非客户端本地
通信方式
默认监听 Unix Socket(本地),不监听网络
远程访问
如需网络访问,默认监听 TCP/2375
修改方法
编辑 /lib/systemd/system/docker.service,在 ExecStart 的 -H 后追加 tcp://0.0.0.0:2375