【发布时间】:2016-07-14 23:15:02
【问题描述】:
有没有办法只使用 Docker Compose 在容器中启动交互式 shell?我在 docker-compose.yml 中尝试过这样的事情:
myapp:
image: alpine:latest
entrypoint: /bin/sh
当我使用 docker-compose up 启动这个容器时,它会立即退出。是否有任何标志可以添加到entrypoint 命令,或者作为myapp 的附加选项来启动交互式shell?
我知道有本地 docker 命令选项可以实现这一点,只是好奇是否也可以仅使用 Docker Compose。
【问题讨论】:
-
这不应该工作。例如,如果您的 compose 文件中有多个带有
/bin/sh入口点的图像,该怎么办? -
嗯,为什么不直接启动多个 shell?例如,将 shell 放入 mysql 容器以使用 mysql cli,将 shell 放入备份容器以运行备份命令?
-
docker-compose run myapp呢? -
@ibova
docker-compose run myapp的问题在于它不会暴露端口。所以你必须使用docker-compose run --service-ports myapp,但仍然不是很方便。 -
@codentary 这只是 YAML,所以在这种特殊情况下引号是可选的。
标签: shell docker interactive docker-compose