1. 程式人生 > >docker中容器nginx部署網站

docker中容器nginx部署網站

1.建立對映埠的互動式容器

  1. docker run -p 80 --name web -i -t daocloud.io/ubuntu /bin/bash  

2.安裝Nginx

  1. apt-get install -y nginx  

3.安裝文字編輯器vim

  1. apt-get install -y vim  

4.建立靜態頁面

  1. mkdir -p /var/www/html  
  2. cd /var/www/html  
  3. vim index.html  

使用i切換到插入模式

index.html中寫入以下內容:

  1. <html>
  2. <head>
  3. <title>Nginx in Docker</title>
  4. </head>
  5. <body>Hello Docker</body>
  6. </html>


儲存退出

5.修改Nginx配置檔案

  1. vim /etc/nginx/sites-enabled/default  

這樣開啟Nginx的配置檔案之後會看見:

  1. server {  
  2.         listen 80 default_server;  
  3.         listen [::]:80 default_server ipv6only=on;  
  4.         root /var/www/html;  
  5.         index index.html index.htm;  
  6.         # Make site accessible from http://localhost/  
  7.         server_name localhost;  
  8.         location / {  
  9.                 # First attempt to serve request as file, then  
  10.                 # as directory, then fall back to displaying a 404.  
  11.                 try_files $uri $uri/ =404;  
  12.                 # Uncomment to enable naxsi on this location  
  13.                 # include 
  14. /etc/nginx/naxsi.rules  
  15.         }  

這個時候修改root的內容,修改成咱們html檔案所在的位置.儲存退出.

切換到根目錄:

cd /

6.執行Nginx

  1. nginx  

可以使用ps -ef檢視一下nginx是否運行了起來.

使用Ctrl+p+q可以將容器放在後臺執行.

使用可以檢視容器的執行效果.

也可以使用docker port web檢視容器的埠對映:

80/tcp -> 0.0.0.0:32768

7.驗證網站訪問

  1. curl http://127.0.0.1:32768  

也可以在瀏覽器中訪問這個頁面:

  1. http://127.0.0.1:32768


使用docker inspect web檢視容器的ip地址:

  1. "NetworkSettings": {  
  2.     "Bridge": "docker0",  
  3.     "Gateway": "172.17.42.1",  
  4.     "GlobalIPv6Address": "",  
  5.     "GlobalIPv6PrefixLen": 0,  
  6.     "IPAddress": "172.17.0.1",  
  7.     "IPPrefixLen": 16,  
  8.     "IPv6Gateway": "",  
  9.     "LinkLocalIPv6Address": "fe80::42:acff:fe11:1",  
  10.     "LinkLocalIPv6PrefixLen": 64,  
  11.     "MacAddress": "02:42:ac:11:00:01",  
  12.     "PortMapping": null,  
  13.     "Ports": {  
  14.         "80/tcp": [  
  15.             {  
  16.                 "HostIp": "0.0.0.0",  
  17.                 "HostPort": "32768"  
  18.             }  
  19.         ]  
  20.     }  
  21. },  


可以看到"IPAddress": "172.17.0.1",這是容器的IP地址.

使用

  1. curl http://127.17.0.1  

就可以直接查看了.

也可以在瀏覽器中使用這個容器的IP地址.

最後需要說明一點,如果使用命令將容器停止:

  1. docker stop web  

然後開啟容器:

  1. docker start -i web  


這個時候使用:

  1. ps -ef  


發現nginx是沒有啟動的.

使用Curl+p+q將容器放入後臺.

使用:

  1. docker exec web nginx  


啟動nginx服務.

使用:

  1. curl http://172.17.0.1  


發現不行了.

這個時候我們使用:

  1. docker inspect web  


看到以下輸出結果:

  1. "NetworkSettings": {  
  2.     "Bridge""docker0",  
  3.     "Gateway""172.17.42.1",  
  4.     "GlobalIPv6Address""",  
  5.     "GlobalIPv6PrefixLen": 0,  
  6.     "IPAddress""172.17.0.2",  
  7.     "IPPrefixLen": 16,  
  8.     "IPv6Gateway""",  
  9.     "LinkLocalIPv6Address""fe80::42:acff:fe11:2",  
  10.     "LinkLocalIPv6PrefixLen": 64,  
  11.     "MacAddress""02:42:ac:11:00:02",  
  12.     "PortMapping"null,  
  13.     "Ports": {  
  14.         "80/tcp": [  
  15.             {  
  16.                 "HostIp""0.0.0.0",  
  17.                 "HostPort""32769"
  18.             }  
  19.         ]  
  20.     }  
  21. },