下面由composer教學專欄來介紹關於docker-compose指令的對比,希望對需要的朋友有幫助!
對比
#image vs build
image:如果鏡像在本地不存在,Compose 將會嘗試拉去這個鏡像。
build:指定 Dockerfile 所在資料夾的路徑。 Compose 將會利用它來自動建造這個鏡像,然後使用這個鏡像。
● links vs external_links
links:連結到其它服務中的容器。使用服務名稱(同時作為別名)或服務名稱:服務別名 (SERVICE:ALIAS) 格式都可以。使用的別名將會自動在服務容器中的 /etc/hosts 中建立。
external_links:連結到 docker-compose.yml 外部的容器,甚至 並非 Compose 管理的容器。
ports vs expose
● ports
暴露埠資訊。使用:宿主:容器 (HOST:CONTAINER)格式或僅指定容器的連接埠(宿主將會隨機選擇連接埠)都可以。
當使用 HOST:CONTAINER 格式來對應連接埠時,如果你使用的容器連接埠小於 60 你可能會得到錯誤得結果,因為 YAML 將會解析 xx:yy 這種數字格式為 60 進位。所以建議採用字串格式。
● expose
暴露端口,但不對應到宿主機,只被連接的服務存取。
僅可指定內部連接埠為參數
volumes vs volumes_from
● volumes
磁碟區掛載路徑設定。可設定宿主機路徑 (HOST:CONTAINER) 或加上存取模式 (HOST:CONTAINER:ro)。
ro就是readonly的意思,只讀模式。
● volumes_from
從另一個服務或容器掛載它的所有磁碟區。
附註:
Compose環境變數說明環境變數已經不再是用來連接服務的建議方法了,相反,應該使用連結名稱(預設是連結服務的名稱)作為主機名稱來連接,這可以查看docker-compose.yml的更多細。 Compose使用Docker links來暴露服務的容器給其他的。每一個連結的容器都使用了一組環境變量,這每一組環境變數都是以容器名稱的大寫字母開頭的。要查看服務可用的環境變量,請執行docker-compose run SERVICE env
以上是docker-compose指令對比的詳細內容。更多資訊請關注PHP中文網其他相關文章!