簡體   English   中英

在使用 docker compose 之前是否需要先構建容器?

[英]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 builddocker run命令手動構建/運行myapppostgresql (在 postgresql 可能的情況下可以docker run - 它從 docker hub 中提取它)並且只有在可以使用docker-compose up

2)如果我添加:

app:
    build: ./app

它會避開我 1) 嗎? (可以docker-compose up沒有docker builddocker run准備步驟的情況下使用docker-compose up

當您運行docker-compose up並且:

  • 在這種情況下,如果您提供標記image並且沒有像您的postgresql服務那樣build標記,系統將首先在您的本地計算機中查找圖像名稱(在這種情況下為postgres:9.6.6 )。 如果找不到,它會嘗試從 Internet 拉取(Dockerhub 的默認設置)
  • 如果您提供標簽build ,它將首先嘗試根據提供的contextDockerfile位置構建您的應用程序映像,然后基於此啟動一個容器。
  • 如果您同時提供buildimage標簽,它將構建並保存圖像為您定義的圖像名稱。

所以回答你的問題:

  1. 您可以直接使用docker-compose up而無需先運行docker rundocker pull 但是,對於私有注冊表,您首先需要登錄,以便 Docker 有權從中提取。
  2. 是的,如上所述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM