云原生技能树-docker image 操作-练习篇
从Docker Hub 拉取已有镜像
一个Docker 镜像(image)包含了程序代码和程序运行所依赖的所有环境。 Docker 镜像一般存放在镜像仓库服务(Image Registry)里,默认的镜像仓库服务是Docker Hub。 用户可以制作、构建镜像、将镜像上传到镜像仓库服务,从而可以在其他地方从镜像仓库服务里拉取镜像。
例如,从Docker Hub拉取 helloworld 镜像的命令:
docker image pull library/hello-world
以下从Docker Hub 拉取 ubuntu 镜像操作正确的是?
答案是:B
本地镜像是运行容器的前提,所以在运行容器前我们需要使用 docker image pull 命令从网络上的镜像仓库把镜像拉取到本地。该命令的格式为:
docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
与镜像相关的操作都被定义在 docker image 子命令中,虽然不带 image 的格式依然被兼容,但带上 image 后会让命令更容易理解,也会有更好的自动补全效果。C属于旧命令格式,要学会答题。
列举所有镜像
一个镜像的名字也叫镜像的仓库名,英文是REPOSITORY,本地列举所有镜像的命令
docker image ls
操作截图如下,可以看到前一题拉取到的hello-world镜像:
以下对docker image ls输出结果描述错误的是?
答案是:B
REPOSITORY:表示镜像的仓库源
查看某个镜像的配置信息
一个镜像的配置信息可以通过下面的命令查看
docker image inspect hello-world
操作截图如下,可以看到镜像启动后会立刻执行的命令CMD:
请自己实际操作后回答问题:以下对docker image inspect输出结果描述错误的是?
答案是:B
题目中的截图不全,为了验证可以查看镜像的操作系统信息,我专门装了一个docker验证了下
移除镜像
通过命令docker image rm命令可以删除不用的镜像,例如先通过命令查看有哪些镜像。
docker image ls
如果镜像没有被启动过,直接之下下面的命令能删除成功:
docker image rm 09d01ed9156b
但是如果镜像被启动过,有可能出现错误信息:
红框的提示表示该镜像被启动过并且目前处于停止状态,我们可以通过docker ps命令查看被启动过的镜像状态
可以看到,其中
横向的红框是ID为09d01ed9156b的镜像启动后的container(参考下一节)的状态
纵向的红框是所有启动的container的当前状态,可以看到图里的都处于Exited的退出状态。
因此我们可以批量使用Linux命令批量删除
docker ps -a | grep “Exited” | awk ‘{print $1 }’|xargs docker rm
如图所示
以下说法错误的是?
答案是:D
题目中说了如果镜像被启动过,有可能出现错误信息,所以docker image rm不能删除已启动的镜像
查看所有的镜像操作命令
除了前面几题介绍的子命令,输入下面的命令回车
docker image
可以看到所有的docker image 操作命令
下面说法错误的是?
答案是:B
rm是删除无用docker镜像的,如果要批量删除,可以
docker ps -a | grep “Exited” | awk ‘{print $1 }’|xargs docker rm