Docker入门系列–Docker镜像管理(三)
一、DOcker镜像管理
1、镜像特性
[1] 镜像是启动容器的关键,容器是基于镜像启动的,没有镜像我们将无法启动容器。每个进项都由唯一的标识Image ID,默认128位,可以使用前16位缩写形式,也可以使用镜像名称与版本号两部分组合唯一标示,如果省略版本号,默认使用最新版本(latest)
[2] 镜像的分层“:Docker的镜像通过联合文件系统(union filesystem)将各层文件系统叠加在一起:
[1] boofs:用于系统引导的文件系统,把偶偶bootloader和kernel,容器启动完成后会被卸载以节省内存资源
[2] rootfs:位于boofs之上,表现为Docker容器的根文件系统
传统模式中,系统启动,内挂载rootfs时会首先将其挂载为“只读”模式,完整性自检完成后将其挂载为读写模式
Docker中,roofts由内核挂载为 “只读”模式而后通过UFS技术挂载一个“可写”层
2、 镜像管理
[1] 镜像的查看与搜索
[root@docker1~]# docker images #查看本地镜像
[root@docker1~]#docker search busybox #搜索相关镜像
[2] 操作镜像
下载镜像(从镜像仓库中)
[root@docker1~]#docker help pull #查看下载帮助信息
[root@docker1~]#docker pull docker.io/busybox #下载busybox镜像
上传镜像(镜像上传到仓库)
[root@docker1~]#docker help pull #查看上传帮助信息
[root@docker1~]#docker pull docker.io/busybox #上传busybox镜像
导出镜像
[root@docker~]#docker save docker.io/busybos:latest -o busybox.tar
导入镜像
[root@docker2~]#docker load -i busybox.tar #通过tar包文件导入
[3] 启动镜像
启动镜像将生成一个容器
[root@docker1~]#docker run -it docker.io/centos:latest /bin/bash
docker run :容器运行命令
-i:表示交互
-t:在另一个终端打开
docker.io/centos:latest:docker镜像名称
/bin.bash:解释器
[root@Docker1~]#docker ps #查看正在运行容器
3、自定义镜像
docker commit
* 使用镜像启动容器,在该容器基础上修改
* 另存为一个新镜像
[root@docker01~]#docker run -it docker.io/centos
(修改数据,安装软件,修改配置文件等)
[root@docker01~]#docker ps -qa #查看镜像ID
[root@docker01~]#docker commit 8d214e73a5 docker.io/myos:latest
4、镜像管理命令
命令列表
docker images #查看镜像列表{查询结果 : REPOSITORY(镜像名称) TAG(镜像标签) IMAGE ID(镜像ID) CREATED(镜像创建时间) SIZE(镜像大小)}
docker history #查看镜像制作历史
docker inspect #查看镜像底层信息
docker pull #下载镜像
docker push #上传镜像
docker rmi #删除本地镜像
docker save #镜像另存为tar包{例:docker save docker.io/busybox:latest -o busybos.tar}
docker search #搜索镜像
docker tag #修改镜像名称和标签{例:docker tag docker.io/busybox:latest abc:latest} 将busybox镜像名称改为abc(相当与硬链接)
docker cp # 将容器中的数据拷贝到宿主机(docker cp b8e7c2c71f8d:/etc/dnf /opt/)