基于现有镜像更新创建镜像

现有更新创建镜像

$ docker ps # 当前运行的容器
CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS       PORTS     NAMES
3ff6bfbfe6ba   ubuntu    "/bin/bash"   4 hours ago   Up 4 hours             elastic_wing
$ docker exec -it 3ff6bfbfe6ba /bin/bash # 进入容器
root@3ff6bfbfe6ba:/# apt-get update  # 容器中执行更新软件源
Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [1676 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
Get:7 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1390 kB]
Get:8 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1059 kB]
Get:9 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [44.6 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]
Get:11 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]
Get:12 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [50.4 kB]
Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [1713 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1671 kB]
Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1325 kB]
Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [50.4 kB]
Get:18 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [28.1 kB]
Fetched 29.3 MB in 59s (499 kB/s)
Reading package lists... Done

root@3ff6bfbfe6ba:/# exit # 退出容器
exit
$ docker commit -m="has update" -a="charley" 3ff6bfbfe6ba charley/ubuntu:v1 # 提交更改后的容器并产生新的镜像
sha256:f2135bec3c53526f6159ad8184c54e700cf883c323d09b8158879c46580f1ff8

$ docker images # 查看镜像,可以看到刚刚生成的新镜像
REPOSITORY       TAG       IMAGE ID       CREATED              SIZE
charley/ubuntu   v1        f2135bec3c53   About a minute ago   125MB
test/ubuntu      v1        05443cf468db   4 hours ago          0B
ubuntu           latest    e34e831650c1   2 weeks ago          77.9MB
ubuntu           20.04     f78909c2b360   6 weeks ago          72.8MB
hello-world      latest    d2c94e258dcb   9 months ago         13.3kB

$ docker run -itd charley/ubuntu:v1 /bin/bash # 利用新镜像运行新容器并后台运行
2386f8d99743303f00e22763f7ea86ac44a39a2742983194af08f03b690f87f6
$ docker ps # 查看当前运行的容器
CONTAINER ID   IMAGE               COMMAND       CREATED         STATUS         PORTS     NAMES
2386f8d99743   charley/ubuntu:v1   "/bin/bash"   6 seconds ago   Up 5 seconds             dazzling_engelbart
3ff6bfbfe6ba   ubuntu              "/bin/bash"   4 hours ago     Up 4 hours               elastic_wing

提交更新后的容器并产生新的镜像