1.获取镜像
镜像是运行容器的前提,官方的Docker Hub网站已经提供了数十万个镜像供大家开放下载。
获取镜像命令
docker pull [Docker Registry 地址[:端口号]/] NAME[:TAG]
NAME:镜像仓库名称(用来区分镜像)
TAG:镜像的标签(往往用来表示版本信息),若不指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像。
可选参数:
- -a, --all-tags=true|false:是否获取仓库中的所有镜像,默认为否;
- –disable-content-trust:取消镜像的内容校验,默认为真。
获取Ubuntu 18.04系统的基础镜像
# 相当于从默认官方Docker Hub下载
docker pull ubuntu:18.04
# 等同于
docker pullregistry.hub.docker.com/ubuntu:18.04
- 下载一个最新版本的Ubuntu操作系统的镜像
docker pull ubuntu
利用Ubuntu 18.04镜像创建容器,在其中运行bash应用
docker run -it ubuntu:18.04 bash
2.查看镜像信息
查看所有镜像信息
docker 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信息,默认为否。
REPOSITORY:来自于哪个仓库,比如ubuntu表示ubuntu系列的基础镜像;
TAG:镜像的标签信息,比如18.04、latest表示不同的版本信息。标签只是标记,并不能标识镜像内容;
IMAGE ID:镜像的ID(唯一标识镜像),如果两个镜像的ID相同,说明它们实际上指向了同一个镜像,只是具有不同标签名称而已;
CREATED:创建时间,说明镜像最后的更新时间;
SIZE:镜像大小,优秀的镜像往往体积都较小。
添加镜像标签
docker tag [NAME:TAG] [OTHERNAME:TAG]
为ubuntu:18.04加一个标签newununtu:18.04,标签名需要为小写
获取镜像的详细信息
docker inspect [NAME:TAG]
查看镜像ubuntu:18.04的详细信息:
查看镜像历史
docker history [NAME:TAG]
查看镜像ubuntu:18.04的历史,加上–no-trunc选项可以输出完整信息,不使用截断
3.搜索镜像
docker search [option] keyword
可选参数:
- -f, --filter filter:过滤输出内容
- –format string:格式化输出内容
- –limit int:限制输出结果个数,默认为25个
- –no-trunc:不截断输出结果
NAME:镜像名称
DESCRIPTION:镜像描述
STARS:镜像收藏数,表示该镜像的受欢迎程度
OFFICIAL:是否官方创建
AUTOMATED:是否自动创建
4.删除和清理镜像
删除镜像
docker rmi [IMAGE]
IMAGE:标签或ID
可选参数:
- -f, -force:强制删除镜像,即使有容器依赖它
- -no-prune:不要清理未带标签的父镜像
清理镜像
使用Docker一段时间后,系统中可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像,可以通过docker image prune命令来进行清理。
可选参数:
- -a, -all:删除所有无用镜像,不光是临时镜像
- -filter filter:只清理符合给定过滤器的镜像
- -f, -force:强制删除镜像,而不进行提示确认
5.创建镜像
创建镜像的方法:
- 基于已有镜像的容器创建
- 基于本地模板导入
- 基于Dockerfile创建
基于已有镜像的容器创建
docker 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 import [OPTIONS] file|URL|-[REPOSITORY [:TAG]]
基于Dockerfile创建
Dockerfile是一个文本文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。
docker build [Dockerfile文件名]
6.上传镜像
上传镜像需要先进行登录,到Docker Hub注册账号,使用docker login进行登录后,再进行上传。注意,tag需要有注册的用户名,否则会上传失败
docker push NAME[:TAG][REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]