安裝Nginx on Docker
取得映像檔
輸入docker images查詢目前擁有的映像檔
root@vm:/home/jennifer# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
python 3.5-alpine d15e7a9f900e 3 weeks ago 68.1MB
cassandra latest 604151722441 2 months ago 379MB
alpine 3.11 f70734b6a266 2 months ago 5.61MB
nginx 1.13.3-alpine ba60b24dbad5 2 years ago 15.5MB若沒有nginx映像檔,可上DockerHub查詢,選擇版本並docker pull nginx:[tag]拉映像檔到自己的機器上,Docker Hub上也會有使用範例
root@vm:/home/jennifer# docker pull nginx:1.18
1.18: Pulling from library/nginx
8559a31e96f4: Pull complete
9a38be3aab21: Pull complete
522e5edd83fa: Pull complete
2ccf5a90baa6: Pull complete
Digest: sha256:159aedcc6acb8147c524ec2d11f02112bc21f9e8eb33e328fb7c04b05fc44e1c
Status: Downloaded newer image for nginx:1.18啟動容器
情境一:使用Docker Bridge Network,並設定port mapping (host 8880 port <-> 容器 80port)
輸入http://host-ip:8880,若有出現nginx畫面代表成功

情境二:使用Docker Bridge Network,並設定port mapping,-P表示主機的port不指定,由電腦隨機取得
-P表示主機的port不指定,由電腦隨機取得經docker ps查詢容器對應的主機port為32768輸入http://host-ip:32768,若有出現nginx畫面代表成功

情境三:使用host網路,並volume設定檔及NFS資料夾
調整nginx設定檔
我們用docker exec -it b5e1 bash進到nginx的容器來看看設定檔(b5e1是某個nginx容器的ID,完整的ID是b5e16239b697,可只輸入前幾碼),再查詢、顯示設定檔的內容
主機的配置則是default.conf,在容器內執行cat /etc/nginx/conf.d/default.conf查看內容
以下是一個完整的default.conf,描述nginx如何處理request
下面這段內容表示,當request的子目錄是book_api的時候,例如 http://host-ip/book_api/ 或 http://host-ip/book_api/query?id=3 ,都將內容再導向至http://192.168.0.100:8801
另外client_max_body_size 5M表示允許上傳的檔案大小為5M
下面這段內容,表示當request的子目錄是fs的時候,例如 http://localhost-ip/fs/a.png,事實上是返回 /tmp/my_fs/a.png 給前端
Last updated
Was this helpful?