Docker漸入佳境

楠槡發表於2018-01-07

前兩篇算是對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的配置可以參考之前的部落格

執行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來檢視埠

curl

如果有外網或者域名解析,則可以直接訪問驗證。

web

或者使用容器的ip地址訪問(宿主機內部)

使用docker inspect Nginx_Web檢視IP地址,並直接訪問,此處略過。

退出容器後操作

退出容器後,nginx服務停止,使用start指令啟動會,nginx並不會自動啟動。

此時可以使用docker exec Nginx_Web nginx來附加指令使nginx啟動,並正常執行。

注意:若不指定,退出並重新啟動後的容器的埠和IP都會改變.

相關文章