docker compose文件的等效docker run命令
我正在处理一个docker-compose.yml文件的项目,该文件具有许多相互依赖性: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
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是如何工作的”,这有点宽泛。如果你能把它缩小到一个特定的技术问题,你会得到更好的答案。非常有用,谢谢你,这正是我想要的。