opencloudos容器镜像优化

opencloudos容器镜像优化

前言

目前因为官方的容器也在移植阶段,并且系统是刚出来的,各方面的应该都会慢慢完善,因为之前也做了相关的移植,所以移植的作为备选的即可

测试发现官方的容器目前还有一些需要处理一些东西,本篇就是简单的介绍怎么用官方的容器,以及存在的问题,最后提供下我自己移植好的容器

官方容器使用方法

拉取镜像

这个操作是使用容器的常规操作了,官方也都发布到了docker hub里面,直接拉取即可

1
2
3
[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

启动容器

1
2
[root@lab101 /]# docker run --name opencloudos  --net=host  --hostname=opencloudos  -dit   --privileged=true  opencloudos/opencloudos:8.6   /sbin/init
bbe06493e7b2305b430c635c23b06b6eeca7d0df38ebfa6a9ab8428a39f1b11c

进入容器

1
2
[root@lab101 /]# docker exec -it opencloudos /bin/bash
bash-4.4#

可以看到进入容器是显示的bash-4.4不是主机名
可以看到

1
bash-4.4# ls /root/

root下面是空的
应该是要有下面的

1
2
[root@centos8 /]# ls /root/.
./ ../ .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc

检查常用包

1
2
3
4
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的裁剪力度,来做的容器包

1
[root@lab101 /]# docker pull zphj1987/opencloudos:8.6

使用上面的就可以拿到opencloudos的8.6的容器版本,容器大小做到了跟官方的centos8基本一致的大小

1
2
3
4
[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大小

1
2
[root@opencloud ~]# docker image ls
zphj1987/opencloudos 8.6 8779b4d2cd5c 5 hours ago 227MB

基本跟centos官方的 231 MB大小一致

做容器过程的一个经验

如果改了容器,不要在原来的基础上面commit,直接export出来,然后创建成新的容器,这样是一个比较简单的控制容器大小的方法,一直commit会叠加容器的大小

对待问题的方法

  • 发现问题
  • 提出方案
  • 解决问题

开源摘星计划

本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star