[英]How to use single docker compose to build containers in different directories
[英]Is it needed to build containers first before use docker compose?
創建 Docker compose 解決方案是為了一次啟動所有依賴的容器,我閱讀了一些文章,解釋了如何同時啟動多個容器:
version: '3'
services:
postgresql:
image: postgres:9.6.6
ports:
- 9932:5432
expose:
- "5432"
environment:
- POSTGRES_PASSWORD=pass
restart: always
volumes:
- /data:/var/lib/postgresql/data
myapp:
image: myapp
links:
- postgresql
depends_on:
- "postgresql"
restart: always
ports:
- "5000:5000
1) 那么我是否需要使用docker build
和docker run
命令手動構建/運行myapp
和postgresql
? (在 postgresql 可能的情況下可以docker run
- 它從 docker hub 中提取它)並且只有在可以使用docker-compose up
2)如果我添加:
app:
build: ./app
它會避開我 1) 嗎? (可以docker-compose up
沒有docker build
和docker run
准備步驟的情況下使用docker-compose up
)
當您運行docker-compose up
並且:
image
並且沒有像您的postgresql
服務那樣build
標記,系統將首先在您的本地計算機中查找圖像名稱(在這種情況下為postgres:9.6.6
)。 如果找不到,它會嘗試從 Internet 拉取(Dockerhub 的默認設置)build
,它將首先嘗試根據提供的context
和Dockerfile
位置構建您的應用程序映像,然后基於此啟動一個容器。build
和image
標簽,它將構建並保存圖像為您定義的圖像名稱。所以回答你的問題:
docker-compose up
而無需先運行docker run
或docker pull
。 但是,對於私有注冊表,您首先需要登錄,以便 Docker 有權從中提取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.