1、Docker 镜像管理
镜像特性 -1
容器创建时需要指定镜像,每个镜像都由唯一的标示 Image ID ,和容器的 Container ID 一样,默认 128 位,可以使用前 16 为缩略形式,也可以使用镜像名与版本号两部分组合唯一标示,如果省略版本号,默认使用最新版本标签 ( latesr )
镜像的分层:Docker 的镜像通过联合文件系统 ( union filesystem ) 将各层文件系统叠加在一起
镜像特性 -2
bootfs:用于系统引导的文件系统,包括 bootloader 和 kernel,容器启动完成后会被卸载以节省内存资源
rootfs:位于 bootfs 之上,表现为 Docker 容器的跟文件系统
传统模式中,系统启动时,内核挂载 rootfs 时会首先将其挂载为“只读”模式,完整性自检完成后将其挂载为读写模式
Docker 中,rootfs 由内核挂载为“只读”模式,而后通过 UFS 技术挂载一个“可写” 层
镜像特性 -3
已有的分层只能读不能修改
上层镜像优先级大于底层镜像
2、Docker 镜像的构建
1、容器 —> 镜像
docker commit 容器名 镜像名
#不支持启动命令封装
#示例:nginx镜像制作
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wangyanglinux/centos7.3 run 2c23e47f438a 4 days ago 192 MB
#运行一个容器
$ docker run --name nginx -p 80:80 -d 2c23e
#进入容器
$ docker exec -it nginx /bin/bash
$ yum -y install lrzsz gcc gcc-c++ pcre pcre-devel zlib zlib-devel make
#上传或下载nginx压缩包,然后解压
$ tar -zxvf nginx-1.13.8.tar.gz
$ cd nginx-1.13.8
$ ./configure --prefix=/usr/local/nginx
$ make && make instal
$ /usr/local/nginx/sbin/nginx # 此时可以网页访问nginx http://192.168.1.11
$ exit # 退出容器
$ docker ps -a
$ docker commit nginx txb_nginx