docker撰写构建单个容器

时间:2016-02-05 16:29:08

标签: docker docker-compose

使用Compose,如果我运行docker-compose build,它将重建所有容器:

> docker-compose build
Building elasticsearch
Step 1 : FROM elasticsearch:2.1
 ---> a05cc7ed3f32
Step 2 : RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic
 ---> Using cache
 ---> ec07bbdb8a18
Successfully built ec07bbdb8a18
Building search
Step 1 : FROM php:5.5.28-fpm
 ---> fcd24d1058c0
...

即使使用缓存进行重建,也需要时间。所以我的问题是:

有没有办法只重建一个特定的容器?

5 个答案:

答案 0 :(得分:109)

是的,请使用服务名称:

docker-compose build elasticsearch

答案 1 :(得分:2)

如果您想在docker-compose文件中运行特定服务,则可以使用与@dnephin建议的方法相同的方法,例如

$ docker-compose.exe up -d service_name

假设您的docker-compose.yml文件就像

version: '3'
services:
  service_1:
      .....
  service_2:
      .....

!为此,您要调用的服务不应依赖于其他服务。

答案 2 :(得分:1)

您可以向 docker-compose 添加 --no-start 标志,稍后再开始,因为您将只构建一项服务。

答案 3 :(得分:0)

您已使用图片标记手动执行此操作。更多详情here

答案 4 :(得分:0)

docker-compose up -d --no-deps --build <service_name>

Source