Docker基础篇05 — 对容器实例进行提交并生成镜像

概述

我们可以对容器实例进行修改,并生成定制化的镜像。

前面提到了 UnionFS 支持对文件系统的修改作为一次提交来一层层叠加。

众所周知,在 Git 当中,使用者可通过 git commit 的方式将当前的修改提交到本地仓库,而 Docker 中也有同样的设计理念,即通过 docker commit 提交容器实例的副本,使之成为一个新的定制化镜像。当然,定制化镜像可以通过 Dockerfile 来完成,这里只是为了方便新手理解。

docker commit 命令

该命令的用法为 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],常用选项有:

  • -m - 书写提交信息,与 git commit 中的 -m 选项一样
  • -a - 指定作者

使用的示例如下:

Shell > docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
debian       latest    c978d997d5fe   3 weeks ago   117MB
nginx        latest    92b11f67642b   6 weeks ago   187MB

Shell > docker run -it --name="debian_1" debian:latest /bin/bash

# 当前的容器实例没有 vim 命令可用
root@4a170ade996b:/# vi
vigr  vipw

root@4a170ade996b:/# apt-get update
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 Packages [8786 kB]
Get:5 http://deb.debian.org/debian bookworm-updates/main amd64 Packages [12.7 kB]
Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [150 kB]
Fetched 9203 kB in 4s (2229 kB/s)
Reading package lists... Done

root@4a170ade996b:/# apt-get -y install vim
...

root@4a170ade996b:/# vi
vi         view       vigr       vim        vim.basic  vimdiff    vimtutor   vipw

ctrl + p + q 退出当前容器实例的交互终端。

查看当前正在运行的容器实例:

Shell > docker ps
CONTAINER ID   IMAGE           COMMAND       CREATED         STATUS         PORTS     NAMES
4a170ade996b   debian:latest   "/bin/bash"   9 minutes ago   Up 9 minutes             debian_1

将修改的容器实例进行 commit 提交:

Shell > docker commit -m "add vim command" -a "frank_lee" debian_1 frank_lee/debian-mod:1.0.0

Shell > docker images
REPOSITORY             TAG       IMAGE ID       CREATED          SIZE
frank-lee/debian_mod   1.0.0     d962bce38245   25 seconds ago   178MB
debian                 latest    c978d997d5fe   3 weeks ago      117MB
nginx                  latest    92b11f67642b   6 weeks ago      187MB

如您所见,对比原始镜像,定制化的镜像在存储大小、镜像 ID、版本号标签上发生了变化。

Avatar photo

关于 陸風睿

GNU/Linux 从业者、开源爱好者、技术钻研者,撰写文档既是兴趣也是工作内容之一。Q - "281957576";WeChat - "jiulongxiaotianci",Github - https://github.com/jimcat8
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇