设为首页 收藏本站
查看: 1584|回复: 0

[经验分享] docker深入1-尝试运行一个简单的web环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-7 08:49:12 | 显示全部楼层 |阅读模式
docker深入1-尝试运行一个简单的web环境
目的:在基础镜像(pcnk/base:v2)上增加一个web环境:sync
做法:启动新的container,然后逐步增加web服务,再提交到image,这里用到了端口映射,数据卷挂载。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
一、在【pcnk/base:v2】这个基础image上运行一个container【web】来安装sync所需的httpd等服务
1)container【web】
[Jack@test101 base]$ docker run -d -v /home/download:/home/download -v /home/datacenter:/data --name web -p 10032:22 pcnk/base:v2   
152d0ca20346fc4a0d0a5a8fe04671910dcc685801f572159ae3c7f5dd2ecf43
[Jack@test101 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   

[Jack@test101 base]$ ssh -p 10032 root@127.0.0.1
root@127.0.0.1's password:
Last login: Wed May  6 10:11:26 2015 from 172.17.42.1

2)调整时间:
[iyunv@152d0ca20346 /]# mv -f /etc/localtime /etc/localtime.old
[iyunv@152d0ca20346 /]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[iyunv@152d0ca20346 /]# echo 'ZONE="Asia/Shanghai"' >/etc/sysconfig/clock

[iyunv@152d0ca20346 /]# cd /home/download/vriteam-sync-0.2.4
[iyunv@152d0ca20346 vriteam-sync-0.2.4]# yum -y install wget gcc perl autoconf automake make bzip2 tar zip && yum clean all
[iyunv@152d0ca20346 vriteam-sync-0.2.4]# ./install all

3)安装php模块:
[iyunv@152d0ca20346 vriteam-sync-0.2.4]# ./install ssh2
[iyunv@152d0ca20346 vriteam-sync-0.2.4]# ./install svn
[iyunv@152d0ca20346 vriteam-sync-0.2.4]# cd /etc/php.d
[iyunv@152d0ca20346 php.d]# cat ssh2.ini svn.ini
; Enable ssh2 extension module
extension=ssh2.so
; Enable svn extension module
extension=svn.so
[iyunv@152d0ca20346 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
[iyunv@152d0ca20346 conf.d]# yum clean all

4)调整httpd的配置:
[iyunv@152d0ca20346 supervisor.d]# ln -s /data/supervisor.d/httpd.ini .
[iyunv@152d0ca20346 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

[iyunv@152d0ca20346 supervisor.d]# cd /etc/httpd/conf.d/
[iyunv@152d0ca20346 conf.d]# mv welcome.conf /tmp/
[iyunv@152d0ca20346 conf.d]# ln -s /data/httpd/conf.d/sync.conf .
[iyunv@152d0ca20346 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
[iyunv@152d0ca20346 conf.d]# cat sync.conf
<VirtualHost *:80>
    ServerAdmin pc@ec.office
    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】
[Jack@test101 base]$ docker commit 152d0ca20346 pcnk/web:sync




三、在image【pcnk/web:sync】的基础上,创建新的container【app_sync】,映射80端口,启动httpd服务

1)container【app_sync】
[Jack@test101 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
[Jack@test101 base]$ ssh -p 10042 root@127.0.0.1
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.
root@127.0.0.1's password:
Last login: Wed May  6 11:51:55 2015 from 172.17.42.1
[iyunv@4df93ea135a9 ~]# 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: root@pts/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服务的控制

[iyunv@ea8daf7b62d4 ~]# supervisorctl status httpd
httpd                            RUNNING   pid 9, uptime 0:00:48      

[iyunv@6a199d754f77 ~]# chmod 777 /data/sync/src/tmp/
[iyunv@6a199d754f77 ~]# chmod 777 /data/sync/src/data/
[iyunv@6a199d754f77 ~]# chmod 777 /data/sync/src/install/
[iyunv@6a199d754f77 ~]# chmod 777 /data/sync/src/db.cfg.php

3)通过web访问,引导安装,db这个环节略过。


四、停止之前用的container,删掉image【pcnk/web:sync】,提交成一个新的image【website/sync】,然后通过这个来启动服务
1)image【website/sync】
[Jack@test101 base]$ docker stop app_sync
[Jack@test101 base]$ docker rm app_sync
[Jack@test101 base]$ dcoker rmi
[Jack@test101 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


[Jack@test101 base]$ docker rmi b41b76b51e1a
Untagged: pcnk/web:sync

[Jack@test101 base]$ docker commit -m "增加 httpd,php 服务,用于sync这个应用。" -a "pcnk" ea8daf7b62d4 website/sync



2)container【app_sync_web】
[Jack@test101 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
[Jack@test101 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之间的关联
[Jack@test101 ~]$ 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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64459-1-1.html 上篇帖子: docker深入1-导入导出images和container的方式 下篇帖子: Docker常用命令持续整理 images
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表