天天看點

手動建構Docker鏡像

1、運作一個容器,并且在容器中安裝和配置nginx

<code>[root@docker /]</code><code># docker run --name nginx-man -it centos</code>

<code>[root@37d5b354b661 /]</code><code># yum install -y wget gcc gcc-c++ make openssl-devel</code>

<code>[root@37d5b354b661 /]</code><code># wget http://nginx.org/download/nginx-1.9.11.tar.gz</code>

<code>--2016-02-24 06:14:44--  http:</code><code>//nginx</code><code>.org</code><code>/download/nginx-1</code><code>.9.11.</code><code>tar</code><code>.gz</code>

<code>Resolving nginx.org (nginx.org)... 95.211.80.227, 206.251.255.63, 2001:1af8:4060:a004:21::e3, ...</code>

<code>Connecting to nginx.org (nginx.org)|95.211.80.227|:80... connected.</code>

<code>HTTP request sent, awaiting response... 200 OK</code>

<code>Length: 895373 (874K) [application</code><code>/octet-stream</code><code>]</code>

<code>Saving to: </code><code>'nginx-1.9.11.tar.gz'</code>

<code>100%[==========================================================================================================&gt;] 895,373      357KB</code><code>/s</code>   <code>in</code> <code>2.5s   </code>

<code>2016-02-24 06:14:46 (357 KB</code><code>/s</code><code>) - </code><code>'nginx-1.9.11.tar.gz'</code> <code>saved [895373</code><code>/895373</code><code>]</code>

<code>[root@37d5b354b661 /]</code><code># cd /usr/local/src </code>

<code>[root@37d5b354b661 src]</code><code># tar zxvf pcre-8.38.tar.gz </code>

<code>[root@37d5b354b661 src]</code><code># tar zxvf nginx-1.9.11.tar.gz </code>

<code>[root@37d5b354b661 src]</code><code># useradd -s /sbin/nologin -M www</code>

<code>[root@37d5b354b661 src]</code><code># pwd</code>

<code>/usr/local/src</code>

<code>[root@37d5b354b661 src]</code><code># ls </code>

<code>nginx-1.9.11  nginx-1.9.11.</code><code>tar</code><code>.gz  pcre-8.38  pcre-8.38.</code><code>tar</code><code>.gz</code>

<code>[root@37d5b354b661 src]</code><code># cd nginx-1.9.11</code>

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.38</code>

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># make</code>

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># make install</code>

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># echo $?</code>

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># vi /usr/local/nginx/conf/nginx.conf</code>

添加資訊:

daemon off;

允許背景允許nginx:

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># echo "daemon off;"&gt;&gt;/usr/local/nginx/conf/nginx.conf</code>

<code>設定開機自動啟動(經過測試發現不能自動生效):</code>

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># vi /etc/rc.local         </code>

<code>[root@37d5b354b661 nginx-1.9.11]</code><code># echo "/usr/local/nginx/sbin/nginx"&gt;&gt;/etc/rc.local</code>

2、将配置好的容器,當作一個鏡像進行手動送出(wanlong/my-nginx:v3):

<code>[root@docker ~]</code><code># docker ps -l</code>

<code>CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES</code>

<code>494d0139baf9        wanlong</code><code>/my-nginx</code><code>:v2   </code><code>"/bin/bash"</code>         <code>6 minutes ago       Up 6 minutes                            lonely_curie        </code>

<code>[root@docker ~]</code><code># docker commit -m "my nginx" 494d0139baf9 wanlong/my-nginx:v3</code>

<code>76507d1d9b41a5189eddd641f2ecbc1b19516eb83d8215dddc73887ca49f4bef</code>

<code>[root@docker ~]</code><code># docker images</code>

<code>REPOSITORY                   TAG                 IMAGE ID            CREATED             VIRTUAL SIZE</code>

<code>wanlong</code><code>/my-nginx</code>             <code>v3                  76507d1d9b41        5 seconds ago       517.2 MB</code>

<code>wanlong</code><code>/my-nginx</code>             <code>v2                  b36ee38d811b        13 minutes ago      517.2 MB</code>

<code>ubuntu                       latest              c29e52d44f69        6 days ago          187.9 MB</code>

<code>wordpress                    latest              62a9acf5fc2a        12 days ago         517.3 MB</code>

<code>nginx                        latest              bbb75b846e7b        12 days ago         134.5 MB</code>

<code>dockerui</code><code>/dockerui</code>            <code>latest              95c8b9dc91e0        3 weeks ago         6.13 MB</code>

<code>redis                        latest              34ca6ac180ad        3 weeks ago         151.2 MB</code>

<code>mongo                        latest              ad74160b3443        3 weeks ago         317.4 MB</code>

<code>daocloud.io</code><code>/library/python</code>   <code>latest              a2db1214d015        4 weeks ago         689.1 MB</code>

<code>debian                       latest              5eb1402f0414        4 weeks ago         125.1 MB</code>

<code>centos                       latest              60e65a8e4030        8 weeks ago         196.6 MB</code>

<code>joedval</code><code>/stress</code>               <code>latest              7eb627cb08a2        11 weeks ago        214.9 MB</code>

<code>jpetazzo</code><code>/nsenter</code>             <code>latest              10cbe4e038bc        5 months ago        368.3 MB</code>

<code>lemonbar</code><code>/centos6-ssh</code>         <code>latest              b78c71c001db        19 months ago       296.9 MB</code>

3、使用送出過的鏡像,運作新的容器

<code>[root@docker ~]</code><code># docker run -d -p 9999:80 wanlong/my-nginx:v3 /usr/local/nginx/sbin/nginx</code>

<code>656058dc0375d3a88ebb8407e64f10542c95e5185b9335c0e50ae1de0be0cee2</code>

<code>CONTAINER ID        IMAGE                 COMMAND                CREATED             STATUS              PORTS                  NAMES</code>

<code>656058dc0375        wanlong</code><code>/my-nginx</code><code>:v3   "</code><code>/usr/local/nginx/sb</code>   <code>8 seconds ago       Up 6 seconds        0.0.0.0:9999-&gt;80</code><code>/tcp</code>   <code>backstabbing_thompson   </code>

<code>[root@docker ~]</code><code># docker ps</code>

<code>CONTAINER ID        IMAGE                 COMMAND                CREATED             STATUS              PORTS                    NAMES</code>

<code>656058dc0375        wanlong</code><code>/my-nginx</code><code>:v3   "</code><code>/usr/local/nginx/sb</code>   <code>8 minutes ago       Up 8 minutes        0.0.0.0:9999-&gt;80</code><code>/tcp</code>     <code>backstabbing_thompson   </code>

<code>494d0139baf9        wanlong</code><code>/my-nginx</code><code>:v2   </code><code>"/bin/bash"</code>            <code>17 minutes ago      Up 17 minutes                                lonely_curie            </code>

<code>37d5b354b661        centos                </code><code>"/bin/bash"</code>            <code>2 hours ago         Up 2 hours                                   nginx-</code><code>man</code>               

<code>94ea720a2c41        centos                </code><code>"/bin/bash"</code>            <code>4 hours ago         Up 4 hours                                   volume-test04           </code>

<code>8884fc392971        nginx                 "nginx -g 'daemon of   18 hours ago        Up 6 hours          80</code><code>/tcp</code><code>, 443</code><code>/tcp</code>          <code>nginxdocker             </code>

<code>14caa9ab03a9        dockerui</code><code>/dockerui</code>     <code>"/dockerui"</code>            <code>2 days ago          Up 6 hours          0.0.0.0:9000-&gt;9000</code><code>/tcp</code>   <code>dockerui_qinwen         </code>

<code>e278cabec91e        centos                </code><code>"/bin/bash"</code>            <code>2 days ago          Up 6 hours                                   centos_aways</code>

在浏覽器中輸入:http://192.168.1.129:9999/,可以看到nginx的預設界面,配置成功

本文轉自 冰凍vs西瓜 51CTO部落格,原文連結:http://blog.51cto.com/molewan/1744658,如需轉載請自行聯系原作者

繼續閱讀