docker commit 创建docker镜像

docker commit :从容器创建一个新的镜像。

有时候需要在基础镜像里面安装某些依赖,如果把命令写在Dockerfile里,部分依赖软件下载很慢,构建镜像的时候又会花很长的时间。所以最好是分装一个包含依赖库的新镜像。

镜像是多层存储,每一层是在前一层的基础上进行的修改;而容器同样也是多层存储,是在以镜像为基础层,在其基础上加一层作为容器运行时的存储层。

 

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a :提交的镜像作者;

  • -c :使用Dockerfile指令来创建镜像;

  • -m :提交时的说明文字;

     

 

 

将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。

runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
runoob@runoob:~$ docker images mymysql:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mymysql             v1                  37af1236adef        15 seconds ago      329 MB

 

转自:https://www.runoob.com/docker/docker-commit-command.html

### 使用 Docker Commit 创建镜像 `docker commit` 是一种用于从运行中的容器创建镜像的方法。以下是关于 `docker commit` 的具体操作流程以及注意事项。 #### 1. 启动一个基础容器 首先,基于现有的基础镜像启动一个容器。例如,可以使用 Ubuntu 或 CentOS 镜像创建一个交互式的容器实例: ```bash docker run -it ubuntu /bin/bash ``` 这一步会拉取最新的 Ubuntu 镜像(如果本地不存在),并启动一个带有交互终端的容器[^4]。 #### 2. 对容器进行修改 在容器内部执行必要的配置或安装软件包。比如,在 Ubuntu 容器中更新系统并安装一些工具: ```bash apt-get update && apt-get install -y curl vim ``` 完成这些更改后,可以通过退出容器结束当前会话: ```bash exit ``` 此时,容器虽然停止运行,但是所有的改动仍然保存在其文件系统中。 #### 3. 提交容器为新的镜像 利用 `docker ps -a` 查看之前创建的容器 ID 或名称,并将其提交成一个新的镜像: ```bash docker commit <容器ID> mynewimage:latest ``` 其中 `<容器ID>` 可以替换为实际的容器短 ID 或者完整的容器名;而 `mynewimage:latest` 则是你希望赋予的新镜像的名字及其标签[^1]。 #### 4. 验证新镜像 最后验证刚刚创建好的镜像是否存在: ```bash docker images | grep mynewimage ``` 如果一切正常的话,应该能够看到名为 `mynewimage` 的条目显示出来。 尽管这种方法简单易懂,但它存在一定的局限性和潜在问题[^3]。因此官方更推荐采用编写 Dockerfile 来定义和自动化整个构建过程的方式生成镜像。 --- ### 注意事项 需要注意的是,Docker 并不鼓励用户频繁依赖于 `docker commit` 方法来进行镜像构建工作,因为这样可能会导致版本控制困难等问题发生。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值