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 rmidocker 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

下面将演示如何使用该命令创建一个新镜像:

  1. 启动一个镜像, 并在其中进行修改操作。例如, 创建一个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
  1. 此时该容器与原 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] savedocker [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镜像相关推荐

  1. Chapter 2 Docker镜像与容器

    Docker镜像 获取镜像 获取镜像 之前提到过,Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像. 从 Docker 镜像仓库获取镜像的命令是 docker pu ...

  2. Docker容器的备份与恢复,Docker镜像的备份与恢复

    1. 备份容器 首先,为了备份Docker中的容器,我们会想看看我们想要备份的容器列表.要达成该目的,我们需要在我们运行着Docker引擎,并已创建了容器的Linux机器中运行 docker ps 命 ...

  3. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像

    1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...

  4. Docker学习(三)-----Docker镜像常用命令

    六.Docker镜像 镜像是Docker的三大组件之一 Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载 6.1Docker获取镜像 6.1.1查找镜像 我们可 ...

  5. 客快物流大数据项目(十三):Docker镜像

    目录 Docker镜像 一.Docker镜像是什么 1.UnionFS(联合文件系统)

  6. Docker镜像优化

    Docker镜像优化 原文:Docker镜像优化 前言 上篇博文说到使用Visual Studio Tools for Docker帮助我们生成Dockerfile,现在我们讨论下生成的Dockerf ...

  7. 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...

    在上一章<maven构建docker镜像三部曲之二:编码和构建镜像>的实战中,我们将spring boot的web工程构建成docker镜像并在本地启动容器成功,今天我们把docker-m ...

  8. docker 镜像容器导入导出、查看日志、拷贝文件命令

    1. 本地文件拷贝到docker 容器中,参考 docker cp /root/pcl-pcl-1.8.1.tar.gz 7ff95b333e12:/docker cp /root/lib64_a 7 ...

  9. 通过Dockerfile构建Docker镜像

    Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添 ...

最新文章

  1. Object value iterator:值迭代器
  2. 计算机桌面显示保护眼睛设置,电脑屏幕如何设置最保护眼睛
  3. java关键字整理_【java基础知识整理】java基础语法之关键字
  4. 如果你不喜欢Windows 11开始菜单,还可以用注册表换回Windows 10样式
  5. eclipse中 将java项目转换为web项目
  6. sublime配置python编译环境及代码补全功能
  7. Android ListView之setEmptyView的问题
  8. 软件开发版本号命名规则
  9. Protues闪退解决办法
  10. 得物(毒)APP,8位抽奖码需求,这不就是产品给我留的数学作业!
  11. 大数据平台自动化运维,数据中心运维平台
  12. MCSE 2012之应用程序控制策略AppLocker
  13. CSS语义-icont+text
  14. C#绘制GPS星空图
  15. 按摩肺经,补足肺气眠自安
  16. linux常用命令2
  17. Matab分布式阵列
  18. 以匠心正道,以决心致远:毫末智行的自动驾驶之路
  19. html缩小网页时版块乱跑,解决动网论坛最后发表显示代码的问题(或导致首页排版错乱)...
  20. K8s——kubernetes集群中ceph集群使用【上】

热门文章

  1. QCustomPlot 示例实践--sinc离散序列
  2. 和面试官对线HashMap
  3. 阿里云 mysql 修改密码_阿里云mysql修改密码
  4. 漫游费概念模糊,运营商自食其果
  5. pdf文档里面如何删除其中一页
  6. android 4.4 蓝牙开发总结(电视盒子)
  7. 网易云音乐PC客户端加密API逆向解析
  8. 深入理解Linux内核-第3版 译者序、前言、目录 内核2.6.11
  9. QCC512x QCC302x 使用I2C驱动外设(Bitserial)
  10. 健康心理学类毕业论文文献包含哪些?