Rootop 服务器运维与web架构

centos7下使用febootstrap制作docker基础镜像

febootstrap – Bootstrap a basic Fedora system (like Debian debootstrap)
在debian或ubuntu中用 debootstrap

首先,先在centos6下下载 febootstrap 安装包,这个包在6中可以直接yum install,但是在7下无法yum安装。

1、通过 yumdownloader 下载相关包

[root@r1 ~]# yum install -y yum-utils
[root@r1 ~]# yumdownloader febootstrap febootstrap-supermin-helper fakechroot fakechroot-libs

# 默认下载到当前目录下。

scp到centos7中,一个个rpm -ivh安装。略…

# febootstrap 参数:
-i 安装rpm包

[root@node1 ~]# febootstrap -i yum -i net-tools -i bash -i wget -i apt-get -i iputils -i iproute -i openssh-server -i openssh-clients centos7.4 centos7.4-doc https://mirrors.aliyun.com/centos/7.4.1708/os/x86_64/
[root@node1 ~]# cd centos7.4-doc

# 将基础镜像打包导入到docker,镜像名centos7

[root@node1 centos7.4-doc]# tar -c . | docker import - centos7

# 启动一个容器

[root@node1 ~]# docker run -dit centos7 /bin/bash

# 进入容器

[root@node1 ~]# docker exec -it 731ad6189caa /bin/bash

# 安装apache

bash-4.2# yum install -y httpd

# 重启apache服务

bash-4.2# systemctl restart httpd

# 报错信息。
Failed to get D-Bus connection: Operation not permitted

网上有的资料说,docker run 容器的时候加 –privileged=true 参数,也不好用,说centos7.2版本会解决,我这centos7.4也没解决。
最后通过docker run容器的时候运行 /usr/sbin/init 才解决。

[root@node1 ~]# docker run -dit centos7 /usr/sbin/init

优化部分:
修改容器时区,编码等问题(调优),再commit为镜像,留做以后做为基础镜像。
1、复制用户默认配置文件到用户家目录

bash-4.2# cd /root
bash-4.2# cp /etc/skel/.bash* .

退出容器,再进入,就会发现前面的提示从 bash-4.2# 变为 [root@1c9c1050c670 ~]# 了

2、安装vi编辑器

[root@1c9c1050c670 ~]# yum install -y vi vim

3、配置 .vimrc ,否则打开中文的文件,会乱码。

[root@1c9c1050c670 ~]# cat .vimrc
set fileencodings=utf-8
set termencoding=utf-8
set encoding=utf-8

4、修改为CST时区

[root@1c9c1050c670 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

提交到docker镜像

[root@node1 ~]# docker commit 1c9c1050c670 centos7.4

PS:
制作镜像的时候,已经安装了ssh,可以设置root密码,ssh登陆进去。设置密码前先安装 yum install -y passwd 否则找不到命令。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3900.html

作者:Venus

服务器运维与性能优化

评论已关闭。