opencloudos容器镜像优化
前言
目前因为官方的容器也在移植阶段,并且系统是刚出来的,各方面的应该都会慢慢完善,因为之前也做了相关的移植,所以移植的作为备选的即可
测试发现官方的容器目前还有一些需要处理一些东西,本篇就是简单的介绍怎么用官方的容器,以及存在的问题,最后提供下我自己移植好的容器
官方容器使用方法
拉取镜像
这个操作是使用容器的常规操作了,官方也都发布到了docker hub里面,直接拉取即可
[root@lab101 /]# docker pull opencloudos/opencloudos:8.6
[root@lab101 /]# docker image ls
docker.io/opencloudos/opencloudos 8.6 85381566b97e 7 days ago 280 MB
可以看到官方的为280MB
启动容器
[root@lab101 /]# docker run --name opencloudos --net=host --hostname=opencloudos -dit --privileged=true opencloudos/opencloudos:8.6 /sbin/init
bbe06493e7b2305b430c635c23b06b6eeca7d0df38ebfa6a9ab8428a39f1b11c
进入容器
[root@lab101 /]# docker exec -it opencloudos /bin/bash
bash-4.4#
可以看到进入容器是显示的bash-4.4不是主机名
可以看到
bash-4.4# ls /root/
root下面是空的
应该是要有下面的
[root@centos8 /]# ls /root/.
./ ../ .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc
检查常用包
bash-4.4# rpm -qa|grep hostname
bash-4.4# rpm -qa|grep vi
device-mapper-1.02.181-3.oc8.x86_64
device-mapper-libs-1.02.181-3.oc8.x86_64
发现vi和hostname命令都没加进去,这里基本的包还是保持比较好,这个在centos8的官方容器里面都做了保留
上面的主机名的处理也可以自己修改/root/.下面做处理做恢复,相关的包也可以自己安装下即可
优化
基于官方容器的优化,这个实际上我是基于操作系统,然后按centos8的容器包的标准,以及根据centos8的裁剪力度,来做的容器包
[root@lab101 /]# docker pull zphj1987/opencloudos:8.6
使用上面的就可以拿到opencloudos的8.6的容器版本,容器大小做到了跟官方的centos8基本一致的大小
[root@lab101 /]# docker pull zphj1987/opencloudos:8.6
Trying to pull repository docker.io/zphj1987/opencloudos ...
8.6: Pulling from docker.io/zphj1987/opencloudos
e6ad0a38566d: Downloading [> ] 528.9 kB/87.57 MB
容器iamge大小
[root@opencloud ~]# docker image ls
zphj1987/opencloudos 8.6 8779b4d2cd5c 5 hours ago 227MB
基本跟centos官方的 231 MB大小一致
做容器过程的一个经验
如果改了容器,不要在原来的基础上面commit,直接export出来,然后创建成新的容器,这样是一个比较简单的控制容器大小的方法,一直commit会叠加容器的大小
对待问题的方法
- 发现问题
- 提出方案
- 解决问题
反馈
如果有技术问题可以联系:
- zphj1987@gmail.com
开源摘星计划
本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star