Docker Container - 基本概念

簡述 Docker Container 使用方式、基本常用指令

概念

container 是根據 image 產生的,image 是根據 dockerfile 產生的,所以 container 包含什麼、有什麼功能都是依據 dockerfile 的內容所決定的

image 可以想像成 container 的規格、標準,每次使用相同的 image 開啟 container 的時候,可以確保執行的功能都會是一模一樣的

常用指令

1
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

運行一個 nginx

1
docker container run -p 8080:80 nginx


如果電腦上沒有 nginx 的 image 會從 docker 的儲存庫下載,預設通常是官方的 Docker Hub

上面這行指令中 -p--port 的縮寫,傳入兩個參數,一個是主機的 port (8080) ,一個是 container 的(80),代表的意思是將 container 的 80 埠對應到主機的 8080 埠
所以在主機的電腦上可以開啟瀏覽器輸入 localhost:8080 就會看到 container 開啟的 nginx 伺服器

如果要知道開啟的 port 是多少,基本上有三種方法

  • 從 Docker Hub 上的說明中查詢

  • 從 Docker Hub 上的 tag 中查詢

  • dockerfile 裡面查詢

EXPOSE 是 dockerfile 中的指令,代表服務對外開啟的 port

這邊可以開始感受到

dockerfile 是 image 的藍圖
image 是 container 的樣板

所以在使用 image 的時候最好可以看到 dockerfile 才可以確保開啟的 container 有做什麼事情

1
docker container run -v ~/Documents/demo:/usr/share/nginx/html -p 8080:80 nginx

這次加上 -v--volume 的縮寫,代表綁定檔案目錄,藉由設置這個參數可以修改 container 中要執行的檔案,這邊綁定了 nginx 的預設目錄,就可以修改預設顯示的頁面了

其他還有許多參數可以設定

-d --detach 代表背景執行,執行後只會回傳 container ID

-i --interactive 開啟互動模式,可以直接操作 container