Docker:Dockerfile与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-whale
图像, docker-compose.yml
是怎么样的?
你可以把这个docker-compose.yaml
放到docker-compose.yaml
旁边:
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
我假设你想运行5个docker鲸的容器,而不是5个图像。
在你的情况compose.yml将不会有关于容器数量的信息。 你需要使用scale命令
docker-compose scale <service-name>=5
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执行以下操作:
- 拉上一步你build立的图像泊坞窗。
- 运行该图像的五个实例作为一个名为docker-whale的服务,限制每个用户使用最多10%的CPU(跨所有核心)和50MB的RAM。
- 如果一个失败,立即重新启动容器
- 将主机上的端口80映射到docker鲸的端口80 …
参考: https : //docs.docker.com/get-started/part3/#docker-composeyml
希望能帮助到你
泊坞窗,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