Docker镜像

it2022-05-07  47

1  获取镜像

1)pull命令:docker [image] pull NAME[:TAG]

NAME是镜像仓库名称(用来区分镜像),TAG是镜像的标签(往往用来表示版本信息);

如果不显式指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像;

例:docker pull ubuntu:18.04

当不同的镜像包括相同的层时,本地仅存储了层的一份内容,减少了存储空间;

2)docker pull ubuntu:18.04命令相当于docker pull registry.hub.docker.com/ ubuntu:18.04,即从默认的注册服务器Docker Hub Registry中的Ubuntu仓库来下载标记为18.04;

如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址

例:docker pull hub.c.163.com/public/ubuntu:18.04

3)pull子命令支持的选项

-a,--all-tags=true|false   是否获取仓库中的所有镜像,默认为否

--disable-content-trust   取消镜像的内容校验,默认为真

在启动配置中增加--registry-mirror=proxy_URL来指定镜像代理服务器地址

2  查看镜像信息

2.1  使用images命令列出镜像

docker images或docker image ls

images子命令:

-a,--all=true|false:列出所有(包括临时文件)镜像文件,默认为否

--digests=true|false:列出镜像的数字摘要值,默认为否

-f,--filter=[]:过滤列出的镜像,如dangling=true只显示没有被使用的镜像;也可指定带有特定标注的镜像等

--format="TEMPLATE":控制输出格式,如.ID代表ID信息

--no-trunc=true|false:对输出结果中太长的部分是否进行截断,如镜像的ID信息。默认为是

-q,--quiet=true|false:仅输出ID信息,默认为否

2.2  使用tag命令添加镜像标签

docker tag命令为本地镜像任意添加新的标签

3  搜索镜像

docker search命令可以搜索Docker Hub官方仓库中的镜像;

语法:docker search [option] keyword

选项:

-f ,--filter filter :过滤输出内容

--format string:格式化输出内容

--limit int:限制输出结果个数,默认为25个

--no-trunc:不截断输出结果

搜索带nginx关键字的镜像:

docker search --filter=is-official=true nginx

4  删除和清理镜像

1)使用标签删除镜像

docker rmi或docker image rm

命令格式:

docker rmi IMAGE [IMAGE...]  其中IMAGE可以为标签或者ID

选项:

-f,-force:强制删除镜像,即使用有容器依赖它

-no-prune:不要清理未带标签的父镜像

当同一镜像有多个标签时,删除的是指定标签而已,不影响镜像文件

2)使用镜像ID来删除镜像

docker rmi后面跟上镜像的ID(也可以是能进行区分的部分ID串前缀)时,会先尝试删除所有指向改镜像的标签,然后删除该镜像本身文件;

当改镜像创建的容器存在时,镜像文件默认是无法被删除的,先删除容器

3)清理镜像

系统中可能会遗留一些临时镜像文件,以及一些没有被使用的镜像,可以使用

docker image prune命令来进行清理

选项:

-a,-all:删除所有无用镜像,不光是临时镜像

-filter filter:只清理符号给定过滤器的镜像

-f,-force:强制删除镜像,而不进行提示确认

5  创建镜像

1)基于已有容器创建

docker [container] commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

选项:

-a,--author="" 作者信息

-c,--change=[] 提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等

-m,--message="" 提交消息

-p,--pause=true 提交时暂停容器运行

例:

docker run -it ubuntu /bin/bash  #运行容器并创建test文件

docker commit -m "add test file" -a "newuser" 6f402f65703b test:0.1  #创建test:0.1镜像

2)基于本地模板文件导入

docker [image] import [OPTIONS] file|URL|-[REPOSITORY[:TAG]]

例如从网上下载了ubuntu-18.04的模板压缩包:

cat ubuntu-18.04.tar.gz | docker import - ubuntu:18.04

3)基于Dockerfile创建

最为常见的方式,Dockerfile是一个文本文件,利用给定的指令描述基于某个父镜像创建新镜像的过程

docker [image] build

后面文档介绍

6   存出和载人镜像

6.1  存出镜像

导出镜像到本地文件

docker [image] save

参数:

-o,-output srting  导出镜像到指定的文件中

例:

docker save -o test_0.1.tar test:0.1

6.2  上传镜像

docker [image] push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]

默认上传到Docker Hub官方仓库(需要登录)

例:

user用户上传本地的test:0.1镜像,可以先添加新的标签user/test:0.1,然后上传

docker tag test:0.1 user/test:0.1

docker push user/test:0.1

转载于:https://www.cnblogs.com/longBlogs/p/10125794.html


最新回复(0)