一、构建基于centos6的企业镜像
(一)、启动centos6基础镜像,并挂载数据卷
[root@docker ~]#mkdir /opt/vol/mysql /opt/vol/html #创建数据卷挂载目录
[root@docker ~]# docker run -it --name "c1_bbs" -v /opt/vol/mysql:/var/lib/mysql /opt/vol/html:/var/www/html centos:6 /bin/bash #启动一个centos容器并挂载数据卷目录。
(二)、优化yum源并安装软件。
mv /etc/yum.repos.d/*.repo /tmp
echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.110/pub/centos6\ngpgcheck=0">/etc/yum.repos.d/ftp.repo
yum makecache fast && yum install -y openssh-server htppd mysql mysql-server php php-mysql #安装所需要的所有软件
(三)、软件的初始化
1、进行sshd的初始化操作。
/etc/init.d/sshd start ----->重要:ssh第一次启动时,需要生成秘钥,生成pam验证配置文件
/etc/init.d/sshd stop
echo “12345” | passwd root --stdin #设置ssh的登录密码
2、mysqld的初始化
(1)[root@localhost ~]# /etc/init.d/mysqld start #启动mysql
(2) mysql>grant all on *.* to root@'%' identified by '123' #授权用户
(3)mysql> grant all on *.* to discuz@'%' identified by '123'
(4)create database discuz charset utf8 #创建discuz空数据库
3、初始化Apach
[root@localhost ~]# /etc/init.d/httpd start #初始化Apach
(四)、制作LAMP第一版基础镜像
[root@localhost ~]# docker commit f6d8a9537be5 qianlong/centos_lamp:v1
(五)、根据第一版镜像启动新容器
[root@docker ~]# docker run -it --name "c1_bbs" -v /opt/vol/mysql:/var/lib/mysql /opt/vol/html:/var/www/html -p 8080:80 qianlong/centos_lamp:v1
[root@localhost ~]# /etc/init.d/httpd start #初始化Apach
[root@localhost ~]# /etc/init.d/mysqld start #启动mysql
(六)、测试php功能
vi /var/www/html/index.php
<%
phpinfo()
%>
(七)、安装论坛
[root@localhost ~]#tar xf bbs.tar.gz #解压论坛程序
(八)、第二版镜像的制作
[root@localhost ~]# docker commit f6d8a9537be5 qianlong/centos_lamp_bbs_sshd:v1
(九)、创建启动脚本
[root@localhost ~]# vi init.sh
#!/bin/bash
/etc/init.d/mysqld start
/etc/init.d/httpd start
/usr/sbin/sshd -D
[root@localhost ~]# chmod +x init.sh
(十)、启动容器、映射端口、挂载数据卷、启动多服务
[root@localhost ~]#docker run -d --name=qianlong_yun -v -v /opt/vol/mysql:/var/lib/mysql /opt/vol/html:/var/www/html -p 8080:80 -p 2222:22 -p 33060:3306 qianlong/centos_lamp_bbs_sshd:v1 /var/www/html/init.sh
二、构建基于centos7的企业镜像
centos7 统一使用systemd管理,没有了init.d的管理模式,sshd没办法初始化管理秘钥对,因此centos7需要手动启动sshd服务如下:
mkdir /var/run/sshd
use 'UseDNS no' >> /etc/ssh/ssh_config
sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
echo 'root:123456' | chpasswd
/usr/bin/ssh-keygen -A
以下步骤与centos6一样。