制作本地局域网yum源 1. 安装vsftpd软件 [root@docker ~]# yum install -y vsftpd mkdir -p /var/ftp/centos6.9 mkdir -p /var/ftp/centos7.6 2. 启动ftp [root@docker ~]# systemctl enable vsftpd [root@docker ~]# systemctl start vsftpd 3. 上传系统进行到虚拟机 上传到/mnt 并挂载 mount -o loop /mnt/CentOS-6.9-x86_64DVD1.iso /var/ftp/centos6.9 mount -o loop /mnt/CentOS-7.6-x86_64-DVD-1810.iso /var/ftp/centos7.6 验证ftp 能否正常访问++++++++ centos6.9 镜像制作 先启动一个容器,以centos6.9的基础镜像 docker run -it --name="xcentos69" 2199b8eb8390 /bin/bash 在容器中操作: cd /etc/yum.repos.d/ mv ./* /tmp/ 配置yum仓库 echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos6.9\ngpgcheck=0">/etc/yum.repos.d/ftp.repo yum clean all yum makecache yum install -y openssh-server /etc/init.d/sshd start ssh在第一次启动时,会生成一个密钥对 passwd #为root用户设置密码 制作镜像:(宿主机上操作),安装的软件装完后,就可以重新制作一个,基于这个容器的镜像。 docker commit xcentos69 dfsc/centos6.9_sshd:v1 docker commit xcentos69#(容器名称) dfsc/centos6.9_sshd:v1##(制作的镜像名称)
启动容器的时候,把sshd 启动sshd ,做为第一个进程,一直启动。 docker container run -d --name=sshd 2648a608aac8 /etc/init.d/sshd -d ##前台启动,一直挂在那里。 ++++++ # 7. 镜像制作 ## 7.1 基于容器的镜像制作 ## 例子1: Aliyum ECS (Centos6.9_sshd 单服务) ## 7.1.1 启动基础镜像容器(网上pull) docker run -it --name="oldguo_centos" centos:6.9 ### 7.1.2 安装所需要的软件包,并且启动测试 mv /etc/yum.repos.d/*.repo /tmp echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/pub/centos6\ngpgcheck=0">/etc/yum.repos.d/ftp.repo yum makecache fast && yum install openssh-server -y /etc/init.d/sshd start ---->重要: ssh第一次启动时,需要生成秘钥,生成pam验证配置文件
/etc/init.d/sshd stop echo "123456" |passwd --stdin ### 7.1.3 镜像的制作 docker commit xcentos69 dfsc/centos6.9_sshd:v1 ### 4.1.4 基于新镜像启动容器实现,centos6.9+sshd的功能 docker container run -d --name=sshd_3222 -p 2222:22 2648a608aac8 /usr/sbin/sshd -D
+++++++++++++++++++++++++++++++ ## 例子2: 构建企业镜像(Centos6.9_SSHD_LAMP_BBS(discuz3.4)) ### 7.2.1 启动基础镜像容器(宿主机里面启动容器) [root@docker ~]# mkdir -- /opt/vol/mysql /opt/vol/html docker run -it --name="dfsc_centos_bbs" -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html centos:6.9 ### 7.2.2 优化yum源并安装软件 (在容器里面操作) mv /etc/yum.repos.d/*.repo /tmp echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos6.9\ngpgcheck=0">/etc/yum.repos.d/ftp.repo yum clean all yum makecache yum install openssh-server httpd mysql mysql-server php php-mysql -y ### 7.2.3 软件初始化 ### sshd 初始化 /etc/init.d/sshd start /etc/init.d/sshd stop echo "windows@123" |passwd root --stdin
### mysqld 初始化 [root@c3fd597ec194 mysql]# /etc/init.d/mysqld start ##启动的时候会自动初始化 登录mysql ,创建用户 mysql> create database discuz charset utf8; mysql> grant all on *.* to root@'%' identified by '123456'; mysql> grant all on *.* to discuz@'%' identified by '123456'; grant all on discuz.* to discuz@'127.0.0.1' identified by '123456'; ### apache初始化 [root@c3fd597ec194 mysql]# /etc/init.d/httpd start ### 7.2.4 制作LAMP第一版基础镜像(宿主机上面操作) [root@c3fd597ec194 mysql]# docker commit c70aafa49932 dfsc/centos6.9_lamp:v1
这时可以把这个容器down掉了,后面用不到了。 ### 7.2.5 根据第一版镜像,启动新容器(宿主机上面操作)
docker run -it --name="dfsc_centos_bbs_v2" -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html -p 8080:80 83ab56d25c26 容器里面启动服务: /etc/init.d/mysqld start /etc/init.d/httpd start 验证Apache
### 7.2.6 测试php功能(容器里面操作) vi /var/www/html/index.php 或者 宿主机 vim /opt/vol/html/index.php <?php phpinfo(); ?>
### 7.2.7 安装bbs论坛 上传bbs(discuz3.4)代码到宿主机/opt/vol/html并解压 chmod o+w -R uc_* config data 安装 IE打开: http://192.168.20.211:8080/install/
登录测试,用admin 登录,是否能正常登录。 ### 7.2.8 制作 LAMP+bbs第二版镜像 docker commit a1519be4f782 dfsc/centos6.9_lamp_discuz3.4:v3
### 7.2.9 创建启动脚本 (容器在启动时,有且仅能启动一个主进程,而且这个进程必须要一直启动,不能停。) 在宿主机上面操作 [root@docker html]# cd /opt/vol/html [root@docker html]# vim init.sh #!/bin/bash /etc/init.d/mysqld start /etc/init.d/httpd start /usr/sbin/sshd -D [root@docker html]# chmod +x init.sh ### 7.2.10 启动容器,映射端口,自动启多服务 docker container run -d --name="dfsc_lamp_discuz3.4" -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html -p 2222:22 -p 8888:80 -p 33060:3306 51c8672191d8 /var/www/html/init.sh
# 7.3 centos7.6.1810_sshd +++++++++++++++++++++ # 7.3.1 起容器 从网上下载镜像,并启动容器。 docker run -it --name=c76sshd centos:7.6.1810 ## 宿主机里面操作 容器里面操作: mv /etc/yum.repos.d/*.repo /tmp echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos7.6\ngpgcheck=0">/etc/yum.repos.d/ftp.repo yum makecache fast && yum install openssh-server -y 手动生成密钥(类似于centos 6.9里面的/etc/init.d/sshd start) mkdir /var/run/sshd echo 'UseDNS no' >> /etc/ssh/sshd_config sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd echo 'root:123456' |chpasswd /usr/bin/ssh-keygen -A 制作ssh的基础镜像 (sshd) docker commit db746a103b05 dfsc76_sshd ##(宿主机上操作)
docker container rund -d –name=sshd_222 -p 222:22 dfsc76_sshd /usr/sbin/sshd -D ++++++++++++++++++++