docker-compose文件的等效docker run命令

时间:2019-08-19 02:03:09

标签: docker docker-compose

我正在使用具有很多相互依赖关系的docker-compose.yml文件进行项目:

version: '3'

services:
  accounts:
    build:
      context: ./accounts
      dockerfile: Dockerfile
    restart: on-failure
    depends_on:
      - ganache
    volumes:
      - ./accounts/src:/app/src
      - ./accounts/config:/app/config
      - ./accounts/.babelrc:/app/.babelrc
    environment:
      VIRTUAL_HOST: accounts.nightfall.docker

  api-gateway:
    build:
      context: ./API-Gateway
      dockerfile: Dockerfile
    restart: on-failure
    volumes:
      - ./api-gateway/src:/app/src
      - ./api-gateway/.babelrc:/app/.babelrc
    environment:
      VIRTUAL_HOST: api.nightfall.docker

  ...

volumes:
  mongo-volume:
    driver: local
    driver_opts:
      type: none
      device: $PWD/../local/mongo-volume
      o: bind
  zkp-keys:
    driver: local
    driver_opts:
      type: none
      device: $PWD/../local/zkp-keys
      o: bind

我的理解是,Docker Compose通过使用参数化运行每个服务来命名服务,连接端口以及按照Docker Compose配置中指定的连接顶级卷的方式工作。

我想每个Docker服务都有相同的命令,这就是Compose的工作方式。

如何查找或制作这些等效命令,以便我可以自己一步一步地启动这些服务,并通过Docker Compose获得相同的结果?

2 个答案:

答案 0 :(得分:0)

好的,让我试着把你弄出来。这里有2服务。 accountsapi-gateway

让我们尝试为accounts做等效的docker命令。

  accounts:
    build:
      context: ./accounts
      dockerfile: Dockerfile
    restart: on-failure
    depends_on:
      - ganache
    volumes:
      - ./accounts/src:/app/src
      - ./accounts/config:/app/config
      - ./accounts/.babelrc:/app/.babelrc
    environment:
      VIRTUAL_HOST: accounts.nightfall.docker

它具有构建步骤,因此我们需要首先构建图像。 cdaccounts目录并运行docker build -t myrepo/accounts:latest .

这将生成名称为myrepo:accounts的图像。现在我们必须运行映像。我们具有以下属性

    restart: on-failure
    depends_on:
      - ganache
    volumes:
      - ./accounts/src:/app/src
      - ./accounts/config:/app/config
      - ./accounts/.babelrc:/app/.babelrc
    environment:
      VIRTUAL_HOST: accounts.nightfall.docker
具有上述属性的

docker命令是

docker run myrepo:accounts --restart on-failure \
   -v "./accounts/src:/app/src" \
   -v "./accounts/config:/app/config" \
   -v "./accounts/.babelrc:/app/.babelrc" \
   -e "VIRTUAL_HOST=accounts.nightfall.docker"

在这里,-v映射卷,-e映射环境变量。

下一个服务api-gateway与上面的相同。

答案 1 :(得分:-1)

可以弄清楚这一点的一种方法是使用--verbose标志。这将显示所有带有Docker Compose调用参数的SDK命令,您可能可以从中得出等效的Docker命令。

docker-compose --verbose up -d