docker compose文件的等效docker run命令

docker compose文件的等效docker run命令,docker,docker-compose,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

我正在处理一个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相同的结果?

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

docker-compose --verbose up -d

好的,让我试着把你弄出来。这里有两种服务<代码>帐户和
api网关

让我们尝试为
帐户
创建等效的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
它有一个构建步骤,所以我们需要首先构建映像<代码>cd到
帐户
目录并运行
docker build-t myrepo/帐户:最新。

这将生成一个名为
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网关
与上面的服务类似

你到底想完成什么?为什么不直接使用
docker compose
?您阅读了哪些文档,以及此compose文件的哪些特定部分您不确定如何使用Docker cli工具进行复制?我尝试了
Docker compose up
,这需要花费大量时间构建我不关心的服务。我的目标是了解一个特定的服务,以便在评估整个系统之前对其进行记录并确保其正常工作。如果您不关心这些服务,只需将它们从
docker compose.yml
文件中删除即可?此外,还不清楚您不清楚撰写文件的哪些部分。目前,这个问题是“向我解释docker compose是如何工作的”,这有点宽泛。如果你能把它缩小到一个特定的技术问题,你会得到更好的答案。非常有用,谢谢你,这正是我想要的。