CHAPTER 2 Docker镜像
docker镜像
- 2.1 docker image 获取
- 2.1.1 命令格式(pull)
- 2.1.2 层(layer)
- 2.1.3 镜像重名
- 2.2 查看镜像信息(ls,tag,inspect,history)
- 2.2.1 使用images命令列出镜像(ls)
- 2.2.2 使用tag命令添加镜像标签(tag)
- 2.2.3 使用inspect命令查看详细信息(inspect)
- 2.2.4 使用history命令查看镜像历史(history)
- 2.3 搜索镜像(search)
- 2.4 删除和清理镜像(rmi,prune)
- 2.4.1 使用标签删除镜像(rmi/rm)
- 2.4.2 使用镜像ID来删除镜像
- 2.4.3 清理镜像(prune)
- 2.5 *创建镜像 (commit,import,build)
- 2.5.1 基于已有容器创建(commit)
- 2.5.2 基于本地模板导入(import)
- 2.5.3 基于 Dockerfile 创建(build)
- 2.6 存出和载入镜像(save,load)
- 2.6.1 存出镜像(save)
- 2.6.2 载入镜像(load)
- 2.7 上传镜像(push)
- 2.8 镜像命令汇总
镜像(image)是Docker三大核心概念中最重要的, 自 Docker 诞生之日起镜像就是相关社区最为热门的关键词。 Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下载(默认使用 DockerHub 公共注册服务器中的仓库), 用户也可以通过配置, 使用自定义的镜像仓库。
本章将围绕镜像这一核心概念介绍具体操作, 包括:
如何使用pull命令从 Docker Hub 仓库中下载镜像到本地;
如何查看本地已有的镜像信息和管理镜像标签;
如何在远端仓库使 用 search 命令进行搜索和过滤;
如何删除镜像标签和镜像文件;
如何创建用户定制的镜像并且保存为外部文件。
最后,还将介绍如何往DockerHub仓库中推送自己的镜像。
2.1 docker image 获取
镜像是运行容器的前提, 官方的 Docker Hub 网站已经提供了数十万个镜像供大家开放下载。 可以使用 docker [image] pull
命令直接从 Docker Hub 镜像源来下载镜像。
2.1.1 命令格式(pull)
该命令的格式:
docker [image] pull NAME [ :TAG]
参数:
- NAME是镜像仓库名称(用来区分镜像),
- TAG是镜像的标签(往往用来表示版本 信息)。
通常情况下, 描述一个镜像需要包括 “名称+标签“ 信息。
例如, 获取一个Ubuntu 18.04系统精简的基础镜像可以使用如下的命令:
[root@dbc-server-554 ansible]# docker image pull ubuntu:18.04
18.04: Pulling from library/ubuntu
a055bf07b5b0: Pull complete
Digest: sha256:c1d0baf2425ecef88a2f0c3543ec43690dc16cc80d3c4e593bb95e4f45390e45
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
对于Docker镜像来说, 如果不显式指定TAG, 则默认会选择latest
标签,这会下载仓库中最新版本的镜像,例如
docker pull ubuntu
等价于
docker pull ubuntu:latest
一般来说, 镜像的latest 标签意味着该镜像的内容会跟踪最新版本的变更而变化,内容是不稳定的。因此,从稳定性上考虑,不要在生产环境中忽略镜像的标签信息或使用默认的latest标记的镜像
2.1.2 层(layer)
下载过程中可以看出 ,镜像文件一般由若干层(layer
)组成 ,a055bf07b5b0这样的字符串是层的唯一id(实际上完整的id包括256比特,64个十六进制字符组成)。使用docker pull命令下载中会获取并输出镜像的各层信息。当不同的镜像包括相同的层时,本地仅存储了层的 一份内容,减小了存储空间。
2.1.3 镜像重名
读者可能会想到, 在不同的镜像仓库服务器的情况下,可能会出现镜像重名的情况。 严格地讲,镜像的仓库名称中还应该添加仓库地址(即registry, 注册服务器)作为前缀,只是默认使用的是官方DockerHub服务 ,该前缀可以忽略。 例如,
docker pull ubuntu:18.04相当于docker pull registory.hub. docker.com/ubuntu:18.04
即从默认的注册服务器DcoekrHub Registry中的 ubuntu 仓库来下载标记为18.04的镜像。
如果从非官方的仓库下载,则 需要在仓库 名称前指定完整的仓库地址。例如从网易蜂巢的镜像源来下载ubuntu:18.04镜像,可以使用如下命令,此时下载的镜像名称为hub. c.163.com/public/ubuntu:18.04
$ docker pull hub.c.163.com/public/ubuntu:18.04 pull
子命令支持的选项主要包括:
- -a, --all-tags=true/false:是否获取仓库中的所有镜像,默认为否;
- –disable-content-trust:取消镜像的内容校验,默认为真。
- –regisotry-mirror=proxy_URL 使用镜像代理服务来加速Docker镜像获取过程,来指定镜像代理服务地址(如https:// registry.docker-en.com)
尝试运行镜像
[root@dbc-server-554 ansible]# docker run -it ubuntu:18.04 bash
root@69c9479cfafd:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
2.2 查看镜像信息(ls,tag,inspect,history)
2.2.1 使用images命令列出镜像(ls)
使用docker images或docker image ls 命令可以列出本地主机上已有镜像的基本信息。格式:
docker images [ls]
例如, 下面的命令列出了上一小节中下载的镜像信息:
[root@dbc-server-554 ansible]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 e28a50f651f9 7 days ago 63.1MB
在列出信息中, 可以看到几个字段信息:
- REPOSITORY 来自于哪个仓库, 比如ubuntu表示ubuntu系列的基础镜像;
- TAG 镜像的标记信息, 比如 18.04、 latest表示不同的版本信息。 标签只是标记, 并不能标识镜像内容;
- IMAGE ID 镜像的ID(唯一标识镜像),如果两个镜像的ID相同,说明它们实际上指向了同一 个镜像, 只是具有不同标签名称而已;
- CREATED 创建时间, 说明镜像最后的更新时间;
- SIZE 镜像大小, 优秀的镜像往往体积都较小。
其中镜像的ID信息十分重要, 它唯一标识了镜像。在使用镜像ID的时候, 一般可以使 用该ID的前若干个字符组成的可区分串来替代完整的ID。
TAG 信息用于标记来自同一个仓库的不同镜像。 例如ubuntu 仓库中有多个镜像, 通过 TAG 信息来区分发行版本, 如18.04、 18.10 等。
镜像大小信息只是表示了该镜像的逻辑体积大小, 实际上由于相同的镜像层本地只会存储一份, 物理上占用的存储空间会小于各镜像逻辑体积之和。
images子命令主要支持如下选项, 用户可以自行进行尝试:
- -a, --all=true/false: 列出所有(包括临时文件)镜像文件,默认为否;
- –digests=true/false: 列出镜像的数字摘要值,默认为否;
- -f, --filter=[] : 过滤列出的镜像,如dangling =true 只显示没有被使用的镜像;也可指定带有特定标注的镜像等;
- –format=“TEMPLATE” : 控制输出格式,如. ID代表ID信息,.Repository 代表仓库信息等;
- –no-trunc=true/false: 对输出结果中太长的部分是否进行截断,如镜像的ID 信息,默认为是否;
- -q, --quiet=true/false: 仅输出ID信息, 默认为否。
[root@dbc-server-554 ansible]# docker images --digests=true
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
ubuntu 18.04 sha256:c1d0baf2425ecef88a2f0c3543ec43690dc16cc80d3c4e593bb95e4f45390e45 e28a50f651f9 7 days ago 63.1MB
[root@dbc-server-554 ansible]# docker images --no-trunc=true
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 sha256:e28a50f651f9eefbc8883ddc64704d609f3d95bf1ea9e41f873a8da68ea5ec98 7 days ago 63.1MB
[root@dbc-server-554 ansible]# docker images -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@dbc-server-554 ansible]# docker images -q
e28a50f651f9
更多子命令选项还可以通过man docker-images
来查看。
2.2.2 使用tag命令添加镜像标签(tag)
为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任意添加新的标签。
格式:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
例如,添加一个新的myubuntu: latest镜像标签:
[root@dbc-server-554 ansible]# docker tag ubuntu:18.04 myubuntu:latest
[root@dbc-server-554 ansible]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu latest e28a50f651f9 7 days ago 63.1MB
ubuntu 18.04 e28a50f651f9 7 days ago 63.1MB
再次使用docker images列出本地主机上镜像信息, 可以看到多了一个myubuntu:latest
标签的镜像,之后,用户就可以直接使用myubuntu:latest来表示这个镜像了。
细心的读者可能注意到, 这些myubuntu:latest镜像的ID跟ubuntu:latest是完全一致的,它们实际上指向了同一个镜像文件,只是别名不同而已。docker tag命令添加的标签实际上起到了类似链接的作用。
2.2.3 使用inspect命令查看详细信息(inspect)
使用docker [image] inspect
命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等,格式
docker inspect [OPTIONS] NAME|ID [NAME|ID...]-f, --format="" Format the output using the given Go template-h, --help[=false] help for inspect-s, --size[=false] Display total file sizes if the type is container
[root@dbc-server-554 ansible]# docker inspect e28
[{"Id": "sha256:e28a50f651f9eefbc8883ddc64704d609f3d95bf1ea9e41f873a8da68ea5ec98","RepoTags": ["myubuntu:latest","ubuntu:18.04"],"RepoDigests": ["ubuntu@sha256:c1d0baf2425ecef88a2f0c3543ec43690dc16cc80d3c4e593bb95e4f45390e45"],"Parent": "","Comment": "","Created": "2023-01-02T18:48:56.081327405Z",...
此处以及后续使用IMAGE ID参数,只要能确定ID,只写前几位即可
上面代码返回的是一个 JSON 格式的消息, 如果我们只要其中一项内容时, 可以使 用-f
来指定, 例如, 获取镜像的Architecture:
[root@dbc-server-554 ansible]# docker image inspect -f {{.Architecture}} e28
amd64
[root@dbc-server-554 ansible]# docker image inspect -f {{.Os}} e28
linux
2.2.4 使用history命令查看镜像历史(history)
既然镜像文件由多个层组成,那么怎么知道各个层的内容具体是什么呢?这时候可以使用history子命令,该命令将列出各层的创建信息。
格式:
docker history [OPTIONS] IMAGE--format="" Pretty-print images using a Go template-h, --help[=false] help for history-H, --human[=true] Print sizes and dates in human readable format--no-trunc[=false] Don't truncate output-q, --quiet[=false] Only show image IDs
例如,查看ubuntu:18.04镜像的创建过程,可以使用如下命令:
[root@dbc-server-554 ansible]# docker image history e28
IMAGE CREATED CREATED BY SIZE COMMENT
e28a50f651f9 7 days ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 7 days ago /bin/sh -c #(nop) ADD file:132da97f77ddc534d… 63.1MB
使用--no-trunc=true
显示长信息
[root@dbc-server-554 ansible]# docker image history --no-trunc=true e28
IMAGE CREATED CREATED BY SIZE COMMENT
sha256:e28a50f651f9eefbc8883ddc64704d609f3d95bf1ea9e41f873a8da68ea5ec98 7 days ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 7 days ago /bin/sh -c #(nop) ADD file:132da97f77ddc534ddb931a461d83ac2aa601dd4481360c874eac33b6c3470d9 in / 63.1MB
2.3 搜索镜像(search)
使用docker search命令可以搜索Docker Hub官方仓库中的镜像。格式:
docker search [OPTIONS] TERM
OPTIONS-f, --filter= Filter output based on conditions provided--format="" Pretty-print search using a Go template-h, --help[=false] help for search--limit=25 Max number of search results--no-trunc[=false] Don't truncate output
例如, 搜索官方提供的带 nginx关键字的镜像
[root@dbc-server-554 ansible]# docker search -f=is-official=true nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 17920 [OK]
再比如, 搜索所有收藏数超过 4 的关键词包括httpd的镜像:
[root@dbc-server-554 ansible]# docker search --filter=stars=4 httpd
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
httpd The Apache HTTP Server Project 4291 [OK]
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 45
centos/httpd 36 [OK]
可以看到返回了很多包含关键字的镜像, 其中包括镜像名字、 描述、 收藏数(表示该镜像 的受欢迎程度)、 是否官方创建、 是否自动创建等。默认的输出结果将按照星级评价进行排序。
2.4 删除和清理镜像(rmi,prune)
2.4.1 使用标签删除镜像(rmi/rm)
使用docker rmi
或 docker image rm
命令可以删除镜像, 命令格式为
docker rmi [OPTIONS] IMAGE [IMAGE...]
其中 IMAGE可以为标签或 ID。 支持选项包括:
- -f, -force: 强制删除镜像, 即使有容器依赖它;
- -no-prune: 不要清理未带标签的父镜像。
[root@dbc-server-554 ansible]# docker rmi myubuntu
Untagged: myubuntu:latest
[root@dbc-server-554 ansible]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 e28a50f651f9 7 days ago 63.1MB
读者可能会想到, 本地的ubuntu:latest 镜像是否会受到此命令的影响。 无须担心, 当同一个镜像拥有多个标签的时候, docker rmi 命令只是删除了该镜像多个标签中的指定 标签而巳, 并不影响镜像文件。 因此上述操作相当于只是删除了镜像 0458a4468cbc的一 个标签副本而已。如果按指定ID删除,则会删除镜像本身。
2.4.2 使用镜像ID来删除镜像
当使用 docker rmi 命令, 并且后面跟上镜像的 ID(也可以是能进行区分的部分 ID 串前缀)时, 会先尝试删除所有指向该镜像的标签, 然后删除该镜像文件本身。
注意,当有该镜像创建的容器存在时,镜像文件默认是无法被删除的,例如: 先利用 ubuntu:18.04镜像创建一个简单的容器来输出一段话:
[root@dbc-server-554 ansible]# docker run -it e28 echo "hello world"
hello world
使用docker ps -a命令可以看到本机上存在的所有容器:
[root@dbc-server-554 ansible]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fe01b86f100c e28 "echo 'hello world'" 14 seconds ago Exited (0) 13 seconds ago interesting_lumiere
69c9479cfafd ubuntu:18.04 "bash" 3 hours ago Exited (0) 3 hours ago angry_hofstadter
可以看到,后台存在一个退出状态的容器,是刚基于ubuntu:18.04镜像创建的。试图删除该镜像,Docker会提示有容器正在运行,无法删除:
[root@dbc-server-554 ansible]# docker rmi ubuntu:18.04
Error response from daemon: conflict: unable to remove repository reference "ubuntu:18.04" (must force) - container fe01b86f100c is using its referenced image e28a50f651f9
如果要想强行删除镜像, 可以使用-f
参数:
$ docker rmi -f ubuntu:18.04
注意, 通常并不推荐使用-f参数来强制删除一个存在容器依赖的镜像。 正确的做法是, 先删除依赖该镜像的所有容器, 再来删除镜像。
首先删除容器e28a50f651f9:
$ docker rm e28a50f651f9
然后使用ID来删除镜像, 此时会正常打印出删除的各层信息
2.4.3 清理镜像(prune)
使用Docker一段时间后, 系统中可能会遗留一些临时的镜像文件, 以及一些没有被使用的镜像, 可以通过docker image prune
命令来进行清理(prune:消减 )。格式:
docker image prune [OPTIONS]
支待选项包括:
-a, -all: 删除所有无用镜像, 不光是临时镜像;
-filter FILTER: 只清理符合给定过滤器的镜像;
-f, -force: 强制删除镜像, 而不进行提示确认。
例如, 如下命令会自动清理临时的遗留镜像文件层, 最后会提示释放的存储空间:
$ docker image prune -f
...
Total reclaimed space: 1.4 GB
2.5 *创建镜像 (commit,import,build)
创建镜像的方法主要有三种: 基于已有镜像的容器创建、 基于本地模板导入、 基于Dockerfile创建。
2.5.1 基于已有容器创建(commit)
该方法主要是使用 docker [container] commit
命令。格式:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS-a, --author="" Author (e.g., "John Hannibal Smith hannibal@a-team.com ⟨mailto:hannibal@a-team.com⟩")-c, --change= 提交的时候执行Dockerfile指令, 包括CMD,ENTRYPOINT,ENV,EXPOSE,LABEL,ONBUILD,USER,VOLUME,WORKDIR等; -m, --message="" Commit message-p, --pause[=true] Pause container during commit
下面将演示如何使用该命令创建一个新镜像:
- 启动一个镜像, 并在其中进行修改操作。例如, 创建一个hello文件
[root@dbc-server-554 ansible]# docker run -it e28 bash
root@944742a90200:/# touch hello
root@944742a90200:/# ls
bin boot dev etc hello home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
- 此时该容器与原 ubuntu:18.04 镜像相比, 已经发生了改变, 可以使用
docker [container] commit
命令来提交为一个新的镜像。提交时可以使用 ID 或名称来指定容器:
[root@dbc-server-554 ansible]# docker commit -m "add a new file [hello]" -a "yurq" 944742a90200 hello:0.1
sha256:faae2335ff33a81fe1c3c305a0296002556af1506db9a986bc9c69426e059955
[root@dbc-server-554 ansible]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello 0.1 faae2335ff33 7 seconds ago 63.1MB
ubuntu 18.04 e28a50f651f9 7 days ago 63.1MB
2.5.2 基于本地模板导入(import)
用户也可以直接从一个操作系统模板文件导人一个镜像,主要使用 docker [container] import 命令。 命令格式为
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
要直接导人一个镜像,可以使用 OpenVZ 提供的模板来创建,或者用其他已导出的镜像 模板来创建。
OPENVZ 模板的下载地址为 http://openvz.org/Download/templates/precreated
。
[root@dbc-server-554 docker]# cat centos-7-x86_64-minimal.tar.gz |docker import - centos:7
sha256:2d8840b29c99c35ff00ef66b2e4707ea22d61b513736df406f4987a46d0aa57f
[root@dbc-server-554 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 2d8840b29c99 3 seconds ago 435MB
hello 0.1 faae2335ff33 38 minutes ago 63.1MB
ubuntu 18.04 e28a50f651f9 7 days ago 63.1MB
2.5.3 基于 Dockerfile 创建(build)
基于 Dockerfile 创建是最常见的方式。 Dockerfile 是一个文本文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。
下面给出 Dockerfile 的一个简单示例,基于centos7镜像构建一个新的centos镜像:
[root@dbc-server-554 docker]# cat dockerfile
FROM centos:7
LABEL version="1.0" maintainer="newbee"
[root@dbc-server-554 docker]# docker build -t centos:test .
Sending build context to Docker daemon 145.6MB
Step 1/2 : FROM centos:7---> 2d8840b29c99
Step 2/2 : LABEL version="1.0" maintainer="newbee"---> Running in b61ec2c18c24
Removing intermediate container b61ec2c18c24---> 286c9503509f
Successfully built 286c9503509f
Successfully tagged centos:test
Dockerfile强大的构建功能远远不止于此,而且非常关键。更多使用 Dockerfile 的技巧将将在后面进行介绍。
2.6 存出和载入镜像(save,load)
本节主要介绍 Docker 镜像的 save 和 load 子命令。 用户可以使用docker [image] save
和docker [image] load
命令来存出和载入镜像。
2.6.1 存出镜像(save)
要导出镜像到本地文件,可以使用 docker [image] save
命令。该命令支持 -o、--output string
参数,导出镜像到指定的文件中。 格式:
docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS-h, --help[=false] help for save-o, --output="" Write to a file, instead of STDOUT
示例:
[root@dbc-server-554 docker]# docker save -o centos7.tar centos:test
[root@dbc-server-554 docker]# ls
centos7.tar centos-7-x86_64-minimal.tar.gz dockerfile
存出的tar文件可以分享给其他人,通过下面load命令载入使用
2.6.2 载入镜像(load)
可以使用 docker [image] load
将导出的 tar 文件再导人到本地镜像库。支持 -i、--input string
选项,从指定文件中读入镜像内容。 格式:
docker load [OPTIONS] IMAGE.tar
OPTIONS-h, --help[=false] help for load-i, --input="" Read from tar archive file, instead of STDIN-q, --quiet[=false] Suppress(删除) the load output
示例:
Loaded image: centos:test
[root@dbc-server-554 docker]# docker rmi 286
Untagged: centos:test
Deleted: sha256:286c9503509fe18eb2d48c9eef585ee6bb8571c116781bad6f7956a33e05520d
[root@dbc-server-554 docker]# docker load -i centos7.tar
Loaded image: centos:test
[root@dbc-server-554 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos test 286c9503509f 13 minutes ago 435MB
centos 7 2d8840b29c99 23 minutes ago 435MB
hello 0.1 faae2335ff33 About an hour ago 63.1MB
ubuntu 18.04 e28a50f651f9 7 days ago 63.1MB
不使用-i
,也可以使用重定向<
,结果相同,例如:
docker load < centos7.tar
2.7 上传镜像(push)
本节主要介绍 Docker 镜像的 push 子命令。 可以使用docker [image] push
命令上 传镜像到仓库,默认上传到 Docker Hub 官方仓库(需要登录)。 命令格式为
docker [image] push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
OPTIONS-a, --all-tags[=false] Push all tagged images in the repository--disable-content-trust[=true] Skip image signing-h, --help[=false] help for push-q, --quiet[=false] Suppress verbose output
用户在 Docker Hub 网站注册后可以上传自制的镜像。
[root@dbc-server-554 docker]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: yurq
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
[root@dbc-server-554 docker]# docker tag hello:0.1 yurq/hello:0.1
[root@dbc-server-554 docker]# docker push yurq/hello:0.1
The push refers to repository [docker.io/yurq/hello]
2f8d78308466: Pushed
101b05ef38e1: Mounted from library/ubuntu
0.1: digest: sha256:6aa6a023469f4e2710f516aed3a9950902d8f03c21360a4b50f930202d58d2f0 size: 736
第一次上传时,会提示输入登录信息或进行注册,之后登录信息会记录到本地~/ . docker 目录下。
以后可以通过docker pull yurq/hello:0.1
下载镜像进行使用
2.8 镜像命令汇总
命令 | 说明 |
---|---|
docker [image] pull NAME [ :TAG] | 获取镜像 |
docker images [ls] | 列出镜像 |
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] | 添加标签 |
docker inspect [OPTIONS] NAME | ID [NAME |
docker history [OPTIONS] IMAGE | 镜像构建历史 |
docker search [OPTIONS] TERM | 查找镜像 |
docker rmi [OPTIONS] IMAGE [IMAGE…] | 删除镜像 |
docker image prune [OPTIONS] | 清理镜像 |
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] | 创建镜像(基于已有容器创建) |
docker import [OPTIONS] file | URL |
docker build -t centos:test .
|
创建镜像(基于 Dockerfile 创建). 指当前路径
|
docker save [OPTIONS] IMAGE [IMAGE…] | 存出镜像 |
docker load [OPTIONS] IMAGE.tar | 载入镜像 |
docker [image] push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG] |
docker login | 登录https://hub.docker.com |
CHAPTER 2 Docker镜像相关推荐
- Chapter 2 Docker镜像与容器
Docker镜像 获取镜像 获取镜像 之前提到过,Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像. 从 Docker 镜像仓库获取镜像的命令是 docker pu ...
- Docker容器的备份与恢复,Docker镜像的备份与恢复
1. 备份容器 首先,为了备份Docker中的容器,我们会想看看我们想要备份的容器列表.要达成该目的,我们需要在我们运行着Docker引擎,并已创建了容器的Linux机器中运行 docker ps 命 ...
- Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像
1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...
- Docker学习(三)-----Docker镜像常用命令
六.Docker镜像 镜像是Docker的三大组件之一 Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载 6.1Docker获取镜像 6.1.1查找镜像 我们可 ...
- 客快物流大数据项目(十三):Docker镜像
目录 Docker镜像 一.Docker镜像是什么 1.UnionFS(联合文件系统)
- Docker镜像优化
Docker镜像优化 原文:Docker镜像优化 前言 上篇博文说到使用Visual Studio Tools for Docker帮助我们生成Dockerfile,现在我们讨论下生成的Dockerf ...
- 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...
在上一章<maven构建docker镜像三部曲之二:编码和构建镜像>的实战中,我们将spring boot的web工程构建成docker镜像并在本地启动容器成功,今天我们把docker-m ...
- docker 镜像容器导入导出、查看日志、拷贝文件命令
1. 本地文件拷贝到docker 容器中,参考 docker cp /root/pcl-pcl-1.8.1.tar.gz 7ff95b333e12:/docker cp /root/lib64_a 7 ...
- 通过Dockerfile构建Docker镜像
Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添 ...
最新文章
- Object value iterator:值迭代器
- 计算机桌面显示保护眼睛设置,电脑屏幕如何设置最保护眼睛
- java关键字整理_【java基础知识整理】java基础语法之关键字
- 如果你不喜欢Windows 11开始菜单,还可以用注册表换回Windows 10样式
- eclipse中 将java项目转换为web项目
- sublime配置python编译环境及代码补全功能
- Android ListView之setEmptyView的问题
- 软件开发版本号命名规则
- Protues闪退解决办法
- 得物(毒)APP,8位抽奖码需求,这不就是产品给我留的数学作业!
- 大数据平台自动化运维,数据中心运维平台
- MCSE 2012之应用程序控制策略AppLocker
- CSS语义-icont+text
- C#绘制GPS星空图
- 按摩肺经,补足肺气眠自安
- linux常用命令2
- Matab分布式阵列
- 以匠心正道,以决心致远:毫末智行的自动驾驶之路
- html缩小网页时版块乱跑,解决动网论坛最后发表显示代码的问题(或导致首页排版错乱)...
- K8s——kubernetes集群中ceph集群使用【上】