目的:在基础镜像(pcnk/base:v2)上增加一个web环境:sync
做法:启动新的container,然后逐步增加web服务,再提交到image,这里用到了端口映射,数据卷挂载。
一、在【pcnk/base:v2】这个基础image上运行一个container【web】来安装sync所需的httpd等服务 1)container【web】 [[email protected] base]$ docker run -d -v /home/download:/home/download -v /home/datacenter:/data --name web -p 10032:22 pcnk/base:v2 152d0ca20346fc4a0d0a5a8fe04671910dcc685801f572159ae3c7f5dd2ecf43 [[email protected] base]$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 152d0ca20346 pcnk/base:v2 "/usr/bin/supervisor 7 seconds ago Up 6 seconds 0.0.0.0:10032->22/tcp web [[email protected] base]$ ssh -p 10032 [email protected] [email protected]‘s password: Last login: Wed May 6 10:11:26 2015 from 172.17.42.1 2)调整时间: [[email protected] /]# mv -f /etc/localtime /etc/localtime.old [[email protected] /]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime [[email protected] /]# echo ‘ZONE="Asia/Shanghai"‘ >/etc/sysconfig/clock [[email protected] /]# cd /home/download/vriteam-sync-0.2.4 [[email protected] vriteam-sync-0.2.4]# yum -y install wget gcc perl autoconf automake make bzip2 tar zip && yum clean all [[email protected] vriteam-sync-0.2.4]# ./install all 3)安装php模块: [[email protected] vriteam-sync-0.2.4]# ./install ssh2 [[email protected] vriteam-sync-0.2.4]# ./install svn [[email protected] vriteam-sync-0.2.4]# cd /etc/php.d [[email protected] php.d]# cat ssh2.ini svn.ini ; Enable ssh2 extension module extension=ssh2.so ; Enable svn extension module extension=svn.so [[email protected] vriteam-sync-0.2.4]# ls /lib64/php/modules/ curl.so fileinfo.so json.so mysqli.so mysql.so pdo_mysql.so pdo.so pdo_sqlite.so phar.so sqlite3.so ssh2.so svn.so zip.so [[email protected] conf.d]# yum clean all 4)调整httpd的配置: [[email protected] supervisor.d]# ln -s /data/supervisor.d/httpd.ini . [[email protected] supervisor.d]# ll total 4 lrwxrwxrwx. 1 root root 28 May 6 02:46 httpd.ini -> /data/supervisor.d/httpd.ini -rw-rw-r--. 1 root root 41 May 5 10:47 sshd.ini [[email protected] supervisor.d]# cd /etc/httpd/conf.d/ [[email protected] conf.d]# mv welcome.conf /tmp/ [[email protected] conf.d]# ln -s /data/httpd/conf.d/sync.conf . [[email protected] conf.d]# ll total 16 -rw-r--r--. 1 root root 2893 Mar 12 15:07 autoindex.conf -rw-r--r--. 1 root root 691 Oct 31 2014 php.conf -rw-r--r--. 1 root root 366 Mar 12 15:08 README lrwxrwxrwx. 1 root root 28 May 6 02:47 sync.conf -> /data/httpd/conf.d/sync.conf -rw-r--r--. 1 root root 1252 Mar 12 14:57 userdir.conf [[email protected]6 conf.d]# cat sync.conf <VirtualHost *:80> ServerAdmin [email protected] ServerName sync.ec.office DocumentRoot /data/sync/src DirectoryIndex index.html index.php <Directory /data/sync/src> AllowOverride None Require all granted </Directory> ErrorLog /data/log/sync-error_log CustomLog /data/log/sync-access_log common </VirtualHost> 二、提交成image:【pcnk/web:sync】 [[email protected] base]$ docker commit 152d0ca20346 pcnk/web:sync 三、在image【pcnk/web:sync】的基础上,创建新的container【app_sync】,映射80端口,启动httpd服务 1)container【app_sync】 [[email protected] base]$ docker run -d -v /home/download:/home/download -v /home/datacenter:/data --name app_sync -p 10042:22 -p 80:80 pcnk/web:sync [[email protected] base]$ ssh -p 10042 [email protected] The authenticity of host ‘[127.0.0.1]:10042 ([127.0.0.1]:10042)‘ can‘t be established. RSA key fingerprint is 15:18:db:44:ed:03:ca:ac:15:a3:d0:ea:ac:01:7e:27. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘[127.0.0.1]:10042‘ (RSA) to the list of known hosts. [email protected]‘s password: Last login: Wed May 6 11:51:55 2015 from 172.17.42.1 [[email protected] ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 12:02 ? 00:00:00 /usr/bin/python /usr/bin/supervisord root 9 1 0 12:02 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 10 1 0 12:02 ? 00:00:00 /usr/sbin/sshd -D apache 12 9 0 12:02 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 13 9 0 12:02 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 14 9 0 12:02 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 15 9 0 12:02 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 16 9 0 12:02 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 17 10 0 12:03 ? 00:00:00 sshd: [email protected]/0 root 19 17 0 12:03 pts/0 00:00:00 -bash root 36 19 0 12:03 pts/0 00:00:00 ps -ef 2)httpd服务的控制 [[email protected] ~]# supervisorctl status httpd httpd RUNNING pid 9, uptime 0:00:48 [[email protected] ~]# chmod 777 /data/sync/src/tmp/ [[email protected] ~]# chmod 777 /data/sync/src/data/ [[email protected] ~]# chmod 777 /data/sync/src/install/ [[email protected] ~]# chmod 777 /data/sync/src/db.cfg.php 3)通过web访问,引导安装,db这个环节略过。 四、停止之前用的container,删掉image【pcnk/web:sync】,提交成一个新的image【website/sync】,然后通过这个来启动服务 1)image【website/sync】 [[email protected] base]$ docker stop app_sync [[email protected] base]$ docker rm app_sync [[email protected] base]$ dcoker rmi [[email protected] base]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE website/sync latest 1bda5d872bf7 22 minutes ago 508 MB pcnk/web sync b41b76b51e1a 4 hours ago 505.9 MB pcnk/base v2 064aa35dfcef 6 hours ago 251.3 MB centos 7 fd44297e2ddb 2 weeks ago 215.7 MB centos centos7 fd44297e2ddb 2 weeks ago 215.7 MB centos latest fd44297e2ddb 2 weeks ago 215.7 MB [[email protected] base]$ docker rmi b41b76b51e1a Untagged: pcnk/web:sync [[email protected] base]$ docker commit -m "增加 httpd,php 服务,用于sync这个应用。" -a "pcnk" ea8daf7b62d4 website/sync 2)container【app_sync_web】 [[email protected] base]$ docker run -d -v /home/download:/home/download -v /home/datacenter:/data --name app_sync_web -p 40022:22 -p 80:80 website/sync [[email protected] base]$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2ab2a9866251 website/sync:latest "/usr/bin/supervisor 6 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:40022->22/tcp app_sync_web 五、现在我们来看一下images之间的关联 [[email protected] ~]$ docker images --tree Warning: ‘--tree‘ is deprecated, it will be removed soon. See usage. └─6941bfcbbfca Virtual Size: 0 B └─41459f052977 Virtual Size: 215.7 MB └─fd44297e2ddb Virtual Size: 215.7 MB Tags: centos:centos7, centos:latest, centos:7 └─751a85a0d00b Virtual Size: 215.7 MB └─19b009f08542 Virtual Size: 228.1 MB └─420cb9e73c70 Virtual Size: 251.3 MB └─e97f94a79de0 Virtual Size: 251.3 MB └─fde06c761bde Virtual Size: 251.3 MB └─dbfae1099999 Virtual Size: 251.3 MB └─064aa35dfcef Virtual Size: 251.3 MB Tags: pcnk/base:v2 └─b41b76b51e1a Virtual Size: 505.9 MB └─1bda5d872bf7 Virtual Size: 508 MB Tags: website/sync:latest
时间: 2024-10-06 12:50:17