镜像,在 docker 管理中算是非常重要的部分,今天我来记录一下,使用简单命令行---制作镜像这个工作。
原理:
docker 中,使用简单命令行---制作镜像,就是在一个,镜像的基础上编辑和修改,由于镜像无法修改,只能先创建一个,读写层,容器只能在读写层进行更改,更改完了之后,可以把读写层和下面的镜像,重新打包,生成一个新的镜像。
1. 在镜像的基础上制作新镜像,
基础镜像 centos:7
2. 通过,基础镜像 centos:7,运行容器,查看该镜像存在的问题:
docker run -it centos:7
没有常用命令,如 ifconfig 命令,vim 命令。
yum 装包不能用
3. 明确,工作目标,使用华为的 yum 仓库,把常用的软件包装上。
4. 通过,基础镜像 centos:7,运行容器
docker run -it centos:7
进入到容器中
5. 使用华为镜像仓库文件替代原有仓库文件
1. 删除原有仓库文件
rm -f /etc/yum.repos.d/*
2. 下载华为云仓库文件
curl http://mirrors.myhuaweicloud.com/repo/CentOS-Base-7.repo -so /etc/yum.repos.d/CentOS-Base.repo
3. 测试yum仓库
yum repolist
6. 安装常用软件包
yum install -y net-tools vim-enhanced tree bash-completion iproute psmisc && yum clean all
软件包 net-tools 提供 ifconfig 命令
软件包 vim-enhanced 提供 vim 命令
软件包 tree 提供 tree 命令
软件包 bash-completion 提供 tab 键
软件包 iproute 提供 ip 命令
软件包 psmisc 提供 pstree 命令
软件包安装完成后,重新执行安装命令得到已安装包界面
yum install -y net-tools vim-enhanced tree bash-completion iproute psmisc && yum clean all
7. 测试各条命令,没有问题后,
退出容器(ctrl+p,ctrl+q),用 docker commit 命令,把容器重新打包成镜像 mycentos2:latest
查看容器 ID
docker ps
使用容器 ID ff 创建镜像 mycentos2:latest
docker commit ff mycentos2:latest
查看,新创建的镜像 mycentos2:latest
总结:我们在基础镜像 centos:7 上,使用华为的yum仓库,把常用的软件包装上,通过 docker commit 命令把已配置好的工作容器重新打包成 mycentos2:latest 镜像,至此本次工作目标完成。