1.介紹

設定容器的埠對映   -P   -p 

在docker中部署靜態網站,要設定容器的埠對映

run [-P] [-p]

-P  --publish-all=true | false 預設為false,將為容器暴露的所有埠進行對映,埠對映命令如下:

docker run -P -i -t ubuntu /bin/bash

-p  --publish=[]   可以指定對映哪些容器的埠

-p  指定容器對映埠的格式有四種:

(1)containerPort:80  指定容器的埠

docker run -p  80  -i -t ubuntu /bin/bash

(2)hostPort:containerPort   同時指定了宿主機的埠和容器的埠

docker run -p  8000:80  -i -t ubuntu /bin/bash

(3)ip::containerPort   指定ip和容器的埠

docker run -p  0.0.0.0:80  -i -t ubuntu /bin/bash

(4)ip:hostPort:containerPort  指定了ip、宿主機埠和容器埠

docker run -p  0.0.0.0:8000:80  -i -t ubuntu /bin/bash

2.部署Nginx步驟:

(1)建立對映80埠的互動式容器

docker run -p  80  --name  staticweb  -it  ubuntu /bin/bash

(2)安裝Nginx

apt-get update
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

輸入下面內容:

(5)修改Nginx配置檔案

#檢視nginx安裝位置
whereis nginx

#檢視nginx配置檔案的位置
ls /etc/nginx
ls /etc/nginx/sites-enabled

開啟default,將server中root的值改為剛建立的靜態網站的位置

vim /etc/nginx/sites-enabled/default

(6)執行Nginx

cd /
#啟動nginx
nginx
#檢視程序
ps -ef
#保持後臺執行
Ctrl + P  Ctrl + Q

檢視埠對映

(7)驗證網站訪問,可以看到網站成功返回了編輯的頁面

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

剛才使用宿主機的ip來訪問,也可以使用容器的ip訪問

docker inspect staticweb

不用再指定埠號了,因為預設的80埠就可以訪問,在瀏覽器中也是一樣的

注意:停止一個容器並重新啟動時,原來分配的ip地址和埠對映都會發生改變。