docker commit 提交容器副本使其成为新的镜像
进入容器,运行,真的不支持vim命令:
安装在容器内vim包
安装完成后,可以支持vim命令
更新包装后,重新打包新镜像
小结
docker commit 提交容器副本使其成为新的镜像
[root@localhost ~]# docker commit --help Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a container's changes Options: -a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>") -c, --change list Apply Dockerfile instruction to the created image -m, --message string Commit message -p, --pause Pause container during commit (default true) [root@localhost ~]#
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的镜像名:[标签名]
操作案例:原始ubuntu容易不支持vim,创建支持vim的新容器
进入容器,运行,真的不支持vim命令:
[root@localhost wll]# docker run -it ubuntu /bin/bash root@b94d60a383a5:/# ls bin dev home lib32 libx32 mnt proc run srv tmp var boot etc lib lib64 media opt root sbin sys usr root@b94d60a383a5:/# vim a.txt bash: vim: command not found root@b94d60a383a5:/#
安装在容器内vim包
root@b94d60a383a5:/# apt-get update Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] Get:2 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [246 kB] Get:3 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [97.1 kB] Get:4 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [226 kB] Get:5 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [4648 B] Get:6 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB] Get:7 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB] Get:8 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB] Get:9 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB] Get:10 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB] Get:11 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB] Get:12 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB] Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [174 kB] Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [276 kB] Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [428 kB] Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [7804 B] Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [5798 B] Fetched 9546 kB in 53s (180 kB/s) Reading package lists... Done root@b94d60a383a5:/#
root@b94d60a383a5:/# apt-get -y install vim Reading package lists... Done Building dependency tree... Done Reading state information... Done ... Processing triggers for libc-bin (2.35-0ubuntu3) ... root@b94d60a383a5:/#
安装完成后,已经可以支持vim命令
root@b94d60a383a5:/# vim a.txt root@b94d60a383a5:/# cat a.txt hello world!!! root@b94d60a383a5:/#
更新完包后,重新打包新镜像
(需用退出容器(要保证容器还在后台运行),后再打包)
docker commit -m="ubnutu_vim" -a="haowll" b94d60a383a5 ubnutu_vim:v1.0.1
从下面的运行结果 可以看出,已经创建了新的镜像ubnutu_vim
root@b94d60a383a5:/# [root@localhost wll]#
[root@localhost wll]#
[root@localhost wll]#
[root@localhost wll]# docker commit -m="ubnutu_vim" -a="haowll" b94d60a383a5 ubnutu_vim:v1.0.1
sha256:5c70e897226328d84db6886dff33251f2460bcd92d061f9e4425a1e62f1db126
[root@localhost wll]#
[root@localhost wll]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubnutu_vim v1.0.1 5c70e8972263 45 seconds ago 172MB
redisbak 7.0.7 faa679f39e42 25 hours ago 101MB
tomcat latest 451d25ef4583 13 days ago 483MB
redis latest 2e50d70ba706 2 weeks ago 117MB
ubuntu latest 27941809078c 4 weeks ago 77.8MB
hello-world latest feb5d9fea6a5 9 months ago 13.3kB
centos latest 5d0da3dc9764 9 months ago 231MB
redis 6.0.8 16ecd2772934 20 months ago 104MB
[root@localhost wll]#
小结