有没有办法只使用Docker Compose在容器中启动交互式shell?我在我的docker-compose.yml中尝试过这样的东西:
myapp:
image: alpine:latest
entrypoint: /bin/sh
当我使用docker-compose up启动这个容器时,它会立即退出。有没有什么标志可以添加到entrypoint
命令中,或者作为myapp
的附加选项来启动交互式shell?
我知道有一些本地docker命令选项可以实现这一点,只是好奇是否也可以只使用Docker Compose。
发布于 2016-08-26 00:09:21
您需要在docker-compose.yml中包含以下行:
version: "3"
services:
app:
image: app:1.2.3
stdin_open: true # docker run -i
tty: true # docker run -t
第一个对应于docker run
中的-i
,第二个对应于-t
。
发布于 2016-03-28 23:54:47
使用docker-compose获得交互式shell的规范方法是:
docker-compose run --rm myapp
你可以设置stdin_open: true, tty: true
,但是这实际上不会给你一个合适的up
外壳,因为日志是从所有容器中流出的。
您还可以使用
docker exec -ti <container name> /bin/bash
获取正在运行的容器上的shell。
发布于 2017-11-15 06:06:27
在具有以下docker-compose.yml
的官方入门示例(https://docs.docker.com/compose/gettingstarted/)中
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
在开始使用docker-compose up
之后,您可以使用以下命令轻松地外壳到redis
容器或web
容器中:
docker-compose exec redis sh
docker-compose exec web sh
https://stackoverflow.com/questions/36249744
复制相似问题