簡體   English   中英

Docker:Dockerfile與docker-compose.yml

[英]Docker: Dockerfile vs docker-compose.yml

我有一個Dockerfile如下:

FROM docker/whalesay:latest
RUN apt-get update && apt-get install -y fortunes
CMD while true; do /usr/games/fortune -a | cowsay; sleep 2; done

我已將上面的Dockerfile為image: Dockerfile docker-whale

我想為上面的圖片寫一個docker-compose.yml 我的理解是你可以使用docker-compose運行多個容器。

所以,如果我想運行5 docker-compose.yml docker-whale圖像, docker-compose.yml是怎么樣的?

你可以把這個docker-compose.yaml旁邊的Dockerfile

version: '2'
services:
  docker-whale:
    image: docker-whale
    build: .

然后執行以下命令:

# build docker image
docker-compose build

# bring up one docker container
docker-compose up -d

# scale up to three containers
docker-compose scale docker-whale=3

# overview about these containers
docker-compose ps

# view combined logs of all containers
# use <ctrl-c> to stop viewing
docker-compose logs --follow

# take down all containers
docker-compose down
version:"3" 
services: docker-whale: 
   image:docker-whale 
   deploy: 
     replicas:5
     resources:
      limits: 
        cpus:"0.1"
        memory: 50M
     restart_policy: 
        condition: on-failure
  ports: "80:80" 

...

以上是你的docker-compose.yml的樣子。 這個docker-compose.yml告訴Dockers執行以下操作:

  1. 拉出你在上一步中構建的圖像docker-wale。
  2. 將該映像的五個實例作為名為docker-whale的服務運行,限制每個實例使用,最多10%的CPU(跨所有核心)和50MB的RAM。
  3. 如果一個失敗,立即重啟容器
  4. 將主機上的端口80映射到docker-whale的端口80 ...

參考: https//docs.docker.com/get-started/part3/#docker-composeyml

希望能幫助到你

我假設你想要運行5個碼頭鯨魚集裝箱而不是5個圖像。

在您的情況下,compose.yml將不包含有關容器數量的信息。 您需要使用scale命令

docker-compose scale <service-name>=5

泊塢窗,compose.yml

docker-whale:
  image: docker-whale

然后在同一文件夾中運行:

docker-compose up -d
docker-compose scale docker-whale=5

這假設您的應用程序是可識別比例的,但您仍然可以在docker-compose.yml中寫入5個條目,這是螺絲刀但有時很有用:

docker-whale-1:
  image: docker-whale

docker-whale-2:
  image: docker-whale

docker-whale-3:
  image: docker-whale

docker-whale-4:
  image: docker-whale

docker-whale-5:
  image: docker-whale

暫無
暫無

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

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