Docker 拉取镜像命令
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
Docker 运行命令
docker run -it --rm \
ubuntu:18.04 \
bash
解释:
**-it**:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
**--rm**:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
**ubuntu:18.04**:这是指用 ubuntu:18.04 镜像为基础来启动容器。
**bash**:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash。
列出镜像
docker image ls
#结果列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间
查看镜像、容器、数据卷所占用的空间
docker system df
#结果列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间
查看虚悬镜像
docker image ls -f dangling=true
#一般可以随意删除
docker image prune
中间层镜像
docker image ls -a
#存在很多依赖关系,尽量别删除
列出部分镜像
#根据仓库名列出镜像
docker image ls ubuntu
#指定仓库名和标签
docker image ls ubuntu:18.04
#滤器参数--filter,或者简写 -f
#希望看到在 mongo:3.2 之后建立的镜像
docker image ls -f since=mongo:3.2
#想查看某个位置之前的镜像也可以,只需要把 since 换成 before 即可。
docker image ls -f before=mongo:3.2
#如果镜像构建时,定义了 LABEL ,可以通过 LABEL 来过滤
docker image ls -f label=com.example.version=0.1
#把所有的虚悬镜像的 ID 列出来
docker image ls -q
#列出镜像结果,只包含镜像ID和仓库名
docker image ls --format "{{.ID}}: {{.Repository}}"
#以表格等距显示,并且有标题行,和默认一样,不过自己定义列
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
删除镜像
#删除镜像示例
docker image rm [选项] <镜像1> [<镜像2> ...]
#用 ID、镜像名、摘要删除镜像
#501为ID的前三位,3位以上可以区别其他镜像的ID就可以
docker image rm 501
#用镜像名,也就是 <仓库名>:<标签>,来删除镜像
docker image rm centos
#使用 镜像摘要 删除镜像
#显示镜像摘要
docker image ls --digests
#示例结果:
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
node slim sha256:b4f0e0bdeb578043c1ea6862d40cc4afe32a4a582f3be235a
#根据镜像摘要删除
docker image rm [email protected]:b4f0e0bdeb578043c1ea6862d40cc4afe32a4a582f3be235a
#删除所有仓库名为 redis 的镜像
docker image rm $(docker image ls -q redis)
#删除所有在 mongo:3.2 之前的镜像
docker image rm $(docker image ls -q -f before=mongo:3.2)