Docker学习之镜像
Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。获取镜像
# docker pull ubuntu:16.04
运行 # docker run -it ubuntu:16.04 bash
-i 交互式操作 -t 建立终端 bash 进入交互式shell
root@653d9e152ccb:/# id
uid=0(root) gid=0(root) groups=0(root)
root@653d9e152ccb:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 镜像体积,image ls 列出来的大小是下载本地展开的大小,和docker hub不同。
查看镜像,容器,数据卷占用的实际空间
# docker system df
http://blog.运维网.com/mofansheng/C:/Users/vst/AppData/Local/YNote/data/qqD53B40C087AE9EF0B35A96CA42610009/d52ca5f61a344699a19999b85f1ed70d/qq%E6%88%AA%E5%9B%BE20180511170536.jpghttp://s1.运维网.com/images/20180514/1526289889168594.jpg
虚悬镜像
仓库名、标签均为的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image)
REPOSITORY TAG IMAGE ID CREATED SIZE
d92ac4d9c31e 24 hours ago 151MB
使用下面命令专门显示虚悬镜像
# docker image ls -f dangling=true
删除虚悬镜像
# docker image prune
中间层镜像
这些无标签镜像不应该删除,否则会导致上层镜像因为依赖丢失而出错。实际上,这些镜像也没必要删除,相同的层只会存一遍,而这些镜像是别的镜像的依赖。只要删除那些依赖它们的镜像后,这些依赖的中间层镜像也会被连带删除。
# docker image ls -a
http://blog.运维网.com/mofansheng/C:/Users/vst/AppData/Local/YNote/data/qqD53B40C087AE9EF0B35A96CA42610009/0fdc04c5b6d6478a9f5f9653637b4e74/qq%E6%88%AA%E5%9B%BE20180511172401.jpghttp://s1.运维网.com/images/20180514/1526289924830154.jpg
列出部分镜像
docker image ls ubuntu #根据仓库名列出
docker image ls ubuntu:16.04 #列出特定某个镜像,指定仓库名和标签
# docker image ls -f since=nginx # -f --filter 过滤器参数 查看nginx之后建立的image
# docker image ls -f before=nginx #查看nginx之前建立的image
http://blog.运维网.com/mofansheng/C:/Users/vst/AppData/Local/YNote/data/qqD53B40C087AE9EF0B35A96CA42610009/a00421e17b92496eb8af625458e4354d/qq%E6%88%AA%E5%9B%BE20180514094840.jpghttp://s1.运维网.com/images/20180514/1526289948929541.jpg
以特定格式显示
docker image ls -q #只列出image ID
使用Go模板语法,筛选列
# docker image ls --format "{{.ID}}: {{.Repository}}" #列出镜像ID和仓库名
fe0f24bc6366: friendhello
46c7cc28562c: nginx-fun
46ba956c5967: python
ae513a47849c: nginx
0b1edfbffd27: ubuntu
# docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" #表格等距显示,自定义显示列及位置;
http://blog.运维网.com/mofansheng/C:/Users/vst/AppData/Local/YNote/data/qqD53B40C087AE9EF0B35A96CA42610009/73ddc707333e4165b6855c68de893e1f/qq%E6%88%AA%E5%9B%BE20180514095722.jpghttp://s1.运维网.com/images/20180514/1526289958390914.jpg
删除本地镜像
# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
friendhello latest fe0f24bc6366 3 days ago 151MB
python 2.7-slim 46ba956c5967 8 days ago 140MB
nginx latest ae513a47849c 13 days ago 109MB
ubuntu 16.04 0b1edfbffd27 2 weeks ago 113MB
用ID 镜像名摘要删除镜像
docker image rm ae5#镜像ID前3个字符即可
docker image rm nginx#:
docker image rm nginx@摘要
# docker image ls --digests#显示摘要
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
nginx latest sha256:0fb320e2a1b1620b4905facb3447e3d84ad36da0b2c8aa8fe3a5a81d1187b884 ae513a47849c 13 days ago 109MB
# docker image rm nginx@sha256:0fb320e2a1b1620b4905facb3447e3d84ad36da0b2c8aa8fe3a5a81d1187b884
Untagged: nginx@sha256:0fb320e2a1b1620b4905facb3447e3d84ad36da0b2c8aa8fe3a5a81d1187b884
docker image ls配合删除镜像
# docker image rm $(docker image ls -q redis)#删除所有仓库名为redis的镜像
# docker image rm $(docker image ls -q -f before=nginx)#删除所有nginx之前的镜像
页:
[1]