docker镜像管理
2019-12-18 10:09:32 0 举报
AI智能生成
登录查看完整内容
docker镜像管理
作者其他创作
大纲/内容
镜像管理
下载
下载最新版
docker pull <镜像名>
注意这里的latest每次下载都会指向最新版
下载指定tag
docker pull alpine:3.10.1
打标签
docker tag 965ea09ff2eb docker.io/fanheng/alpine:v3.10.3
删除
删除标签(本地)
docker rmi fanheng/alpine:v3.10.3
彻底删除镜像(本地)
docker rmi <镜像id>
如果有其它标签引用了这个镜像,就删除不了。可以使用 -f 强制删除:docker rmi -f <镜像id>,此方法会先把所有相关tag全部删除掉,然后再删除镜像
远程仓库的删除,需要登录到仓库的后台去手工删除
搜索远程镜像
docker search <镜像名的关键字>
查看本机镜像
docker images 或 docker image ls
推送
docker push docker.io/fanheng/alpine:v3.10.3
镜像特性
分层结构
base 镜像有两层含义
1. 不依赖其他镜像,从 scratch 构建
2. 其他镜像可以之为基础进行扩展
好处:资源共享
有多个镜像都从相同的 base 镜像构建而来,那么 Docker Host 只需在磁盘上保存一份 base 镜像;同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。
container(可写层 也叫 容器层)
所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中。只有容器层是可写的,容器层下面的所有镜像层都是只读的。
特性: Copy-on-Write
只有当需要修改时才复制一份数据,这种特性被称作 Copy-on-Write。可见,容器层保存的是镜像变化的部分,不会对镜像本身进行任何修改。
容器层的增删改查步骤
1.添加文件 在容器中创建文件时,新文件被添加到容器层中。2. 读取文件在容器中读取某个文件时,Docker 会从上往下依次在各镜像层中查找此文件。一旦找到,打开并读入内存。3. 修改文件在容器中修改已存在的文件时,Docker 会从上往下依次在各镜像层中查找此文件。一旦找到,立即将其复制到容器层,然后修改之。4. 删除文件在容器中删除文件时,Docker 也是从上往下依次在镜像层中查找此文件。找到后,会在容器层中记录下此删除操作。
镜像层
image
新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层
比如:emacs,apache
镜像层数量可能会很多,所有镜像层会联合在一起组成一个统一的文件系统。如果不同层中有一个相同路径的文件,比如 /a,上层的 /a 会覆盖下层的 /a,也就是说用户只能访问到上层中的文件 /a。在容器层中,用户看到的是一个叠加之后的文件系统。
base image(rootfs)
最基础的image
底层共用 Docker Host 的 kernel
base 镜像只是在用户空间与发行版一致,kernel 版本与发型版是不同的
容器只能使用 Host 的 kernel,并且不能修改。所有容器都共用 host 的 kernel,在容器中没办法对 kernel 升级。如果容器对 kernel 版本有要求(比如应用只能在某个 kernel 版本下运行),则不建议用容器,这种场景虚拟机可能更合适。
最底层:bootfs
整个docker镜像的底层依赖的库和kernel去交互的玩意儿
收藏
收藏
0 条评论
回复 删除
下一页