前兩篇算是對
Docker
做了大致的介紹,然後現在開始,就是Docker
的實際運用了,先從一個簡單的靜態網站的部署開始。
- Docker初次見面 -
Docker
基礎概念 - Docker循序漸進 -
Docker
容器的基本操作
容器埠對映
以網站服務為例,一般需要80
埠,那麼如何使容器的埠能被外界訪問得到呢?這就要用到容器的埠對映。
run [-P] [-p]
-p
--publish = []
- containerPort -
docker run -p 80 -i -t /bin/bash
- 宿主機埠隨機對映 - hostPort:containerPort -
docker run -p 8080:80 -i -t /bin/bash
- 宿主機埠:容器埠 指定對映 - IP:containerPort -
docker run -p 0.0.0.0:80 -i -t /bin/bash
- 指定IP的埠對映 - ip:hostPort:containerPort
docker run -p 0.0.0.0:8080:80 -i -t /bin/bash
- 指定IP和埠的對映
Nginx部署靜態網站
部署Nginx需要以下步驟:
建立對映80埠的互動式容器
$ docker run -p 80 --name Nginx_Web -i -t ubuntu /bin/bash
複製程式碼
安裝Nginx
$ apt-get install -y nginx
複製程式碼
若提示未發現軟體,使用apt-get update
更新源
安裝文字編輯器vim
$ apt-get install -y vim
複製程式碼
建立靜態頁面
先建立網站目錄,然後使用vim編輯網頁
$ mkdir -p /var/www/html
$ cd /var/www/html
$ vim index.html
複製程式碼
輸入一個基本的html
內容,:wq
指令儲存並退出!
修改Nginx配置檔案
$ cd /etc/nginx/
$ ls
$ vim /sites-enabled/default
複製程式碼
檢查root的預設路徑,確認其為剛剛建立的/var/www/html
同樣:wq
指令儲存並退出!
關於Nginx的配置可以參考之前的部落格
- Ubuntu下安裝Nginx+PHP+MySql環境 中配置nginx的部分內容
- Nginx配置檔案nginx.conf詳解
執行Nginx
$ nginx
$ ps -ef
複製程式碼
執行nginx
,可以使用ps
指令來檢視
Ctrl+P
+ Ctrl+Q
切出容器,使用docker ps
檢視容器狀態
驗證網站訪問
若無公網IP,則直接使用curl
命令才訪問
$ curl http://127.0.0.1:32769
複製程式碼
注意:這裡的埠號使用剛才ps中顯示的埠號,也可以使用docker port Nginx_Web
來檢視埠
如果有外網或者域名解析,則可以直接訪問驗證。
或者使用容器的ip地址訪問(宿主機內部)
使用docker inspect Nginx_Web
檢視IP地址,並直接訪問,此處略過。
退出容器後操作
退出容器後,nginx服務停止,使用start
指令啟動會,nginx並不會自動啟動。
此時可以使用docker exec Nginx_Web nginx
來附加指令使nginx啟動,並正常執行。
注意:若不指定,退出並重新啟動後的容器的埠和IP都會改變.