从docker-compose启动特定服务

时间:2018-08-06 09:24:13

标签: docker docker-compose dockerfile

我是docker的新手,拥有docker-compose.yml,其中包含许多服务,我需要启动一项特定服务。 我有带有信息的docker-compose.yml文件:

version: '2'

services:

    postgres:
        image: ${ARTIFACTORY_URL}/datahub/postgres:${BUILD_NUMBER}
        restart: "no"
        volumes:
            - /etc/passwd:/etc/passwd


        volumes_from:
            - libs
        depends_on:
            - libs

    setup:
        image: ${ARTIFACTORY_URL}/setup:${B_N}
        restart: "no"
        volumes:
            - ${HOME}:/usr/local/

我能够使用命令

调用docker-compose.yml文件
docker-compose -f docker-compose.yml up -d --no-build

我需要在docker-compose文件中启动“设置服务”

我该怎么做?

2 个答案:

答案 0 :(得分:1)

据我所知,您在docker-compose中有多种服务,但只想部署其中一项。

docker-compose应该用于多容器Docker应用程序。来自官方docs

  

Compose是用于定义和运行多容器Docker的工具   应用程序。

恕我直言,您应该使用docker run命令单独运行服务映像。

PS :如果您要在docker-compose文件的多个服务中仅重新创建映像已更改的容器,则docker-compose会为您处理。

答案 1 :(得分:0)

我不同意,docker compose 只能用于启动您的部分服务,而不是所有服务。

很简单:

docker compose up <service-name>

就你而言:

docker compose -f docker-compose.yml up setup -d

要停止服务,则不需要指定服务名称:

docker compose down

会做的。

小贴士:如果你在docker-compose.yml文件所在的目录下,那么docker-compose会隐式使用它,不需要加参数。 您需要在以下情况下提供:

  • 该文件不在您的当前目录中
  • 文件名与默认文件名不同,例如。 myconfig.yml