docker中容器nginx部署網站
阿新 • • 發佈:2019-02-08
1.建立對映埠的互動式容器
- docker run -p 80 --name web -i -t daocloud.io/ubuntu /bin/bash
2.安裝Nginx
- apt-get install -y nginx
3.安裝文字編輯器vim
- apt-get install -y vim
4.建立靜態頁面
- mkdir -p /var/www/html
- cd /var/www/html
- vim index.html
使用i切換到插入模式
在index.html中寫入以下內容:
- <html>
-
<head>
- <title>Nginx in Docker</title>
- </head>
- <body>Hello Docker</body>
- </html>
儲存退出
5.修改Nginx配置檔案
- vim /etc/nginx/sites-enabled/default
這樣開啟Nginx的配置檔案之後會看見:
- server {
- listen 80 default_server;
- listen [::]:80 default_server ipv6only=on;
-
root /var/www/html;
- index index.html index.htm;
- # Make site accessible from http://localhost/
- server_name localhost;
- location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
-
try_files $uri $uri/ =404;
- # Uncomment to enable naxsi on this location
- # include
- /etc/nginx/naxsi.rules
- }
這個時候修改root的內容,修改成咱們html檔案所在的位置.儲存退出.
切換到根目錄:
cd /
6.執行Nginx
- nginx
可以使用ps -ef檢視一下nginx是否運行了起來.
使用Ctrl+p+q可以將容器放在後臺執行.
使用可以檢視容器的執行效果.
也可以使用docker port web檢視容器的埠對映:
80/tcp -> 0.0.0.0:32768
7.驗證網站訪問
- curl http://127.0.0.1:32768
也可以在瀏覽器中訪問這個頁面:
- http://127.0.0.1:32768
使用docker inspect web檢視容器的ip地址:
- "NetworkSettings": {
- "Bridge": "docker0",
- "Gateway": "172.17.42.1",
- "GlobalIPv6Address": "",
- "GlobalIPv6PrefixLen": 0,
- "IPAddress": "172.17.0.1",
- "IPPrefixLen": 16,
- "IPv6Gateway": "",
- "LinkLocalIPv6Address": "fe80::42:acff:fe11:1",
- "LinkLocalIPv6PrefixLen": 64,
- "MacAddress": "02:42:ac:11:00:01",
- "PortMapping": null,
- "Ports": {
- "80/tcp": [
- {
- "HostIp": "0.0.0.0",
- "HostPort": "32768"
- }
- ]
- }
- },
可以看到"IPAddress": "172.17.0.1",這是容器的IP地址.
使用
- curl http://127.17.0.1
就可以直接查看了.
也可以在瀏覽器中使用這個容器的IP地址.
最後需要說明一點,如果使用命令將容器停止:
- docker stop web
然後開啟容器:
- docker start -i web
這個時候使用:
- ps -ef
發現nginx是沒有啟動的.
使用Curl+p+q將容器放入後臺.
使用:
- docker exec web nginx
啟動nginx服務.
使用:
- curl http://172.17.0.1
發現不行了.
這個時候我們使用:
- docker inspect web
看到以下輸出結果:
- "NetworkSettings": {
- "Bridge": "docker0",
- "Gateway": "172.17.42.1",
- "GlobalIPv6Address": "",
- "GlobalIPv6PrefixLen": 0,
- "IPAddress": "172.17.0.2",
- "IPPrefixLen": 16,
- "IPv6Gateway": "",
- "LinkLocalIPv6Address": "fe80::42:acff:fe11:2",
- "LinkLocalIPv6PrefixLen": 64,
- "MacAddress": "02:42:ac:11:00:02",
- "PortMapping": null,
- "Ports": {
- "80/tcp": [
- {
- "HostIp": "0.0.0.0",
- "HostPort": "32769"
- }
- ]
- }
- },