优点:易于扩展 优化存储空间
一个分层存储的文件
一个软件的环境
一个镜像可以创建N个容器
一种标准化的交付
一个不包含Linux内核而又精简的Linux操作系统
镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history 查看镜像中各层内容及大小 每层对应着Dockerfile 中的一条指令。 Docker镜像默认存储在 /var/lib/docker/\\ 对应docker info中的Storage Drive
#检索镜像
[root@cetus docker]# docker search nginx
#页面查询
https://hub.docker.com/
#配置加速器https://www.daocloud.io/mirror
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
[root@cetus docker]# cat /etc/docker/daemon.json
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}
#需要重启docker
systemctl restart docker
- 容器和镜像的关系
容器是在镜像的最上面加了一层读写层,在运行容器里文件改动时会先从镜像里把要写的文件复制到容器自己的文件系统中。
如果容器删除了,最上面的都写层也就删除了,改动也会丢失。所以无论多少容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作的,并不会删除镜像源文件 这种方式提高磁盘利用率。
如果想持久化改动,可以通过docker commit 将容器保存成一个新镜像。
#镜像常用命令
[root@cetus docker]# docker image --help
Commands:
build 构建镜像来自Dockerfile
history 查看镜像历史
import 容器导出
export 容器导入
inspect 显示一个或多个镜像详细信息
ls 查看镜像列表
prune 移除没有使用
pull 从镜像仓库拉取
push 推送镜像到镜像仓库
rm 移除一个或多个镜像
save 导出镜像
load 导入镜像
tag 创建一个引用镜像标记目标镜像
docker image save nginx > nginx.tar
docker image load< nginx.tar