docker run -idt ubuntu:16.04
之后,我们可以使用docker ps
来查看容器的启动。
但是如果接下来使用docker compose和docker-compose up,我们可以看到docker ps
找不到容器,而从docker ps -a
可以看到它已经退出。
version: '2'
services:
me:
image: 'ubuntu:16.04'
问题:我们如何使用docker compose实现-idt
?
答案 0 :(得分:2)
默认CMD of an ubuntu image是一个bash:
# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
从“ Interactive shell using Docker Compose”看添加行是否有帮助:
stdin_open: true
tty: true
答案 1 :(得分:0)
docker-compose run {image} /bin/bash
将已经是交互式的
对于docker-compose来说,您不应该以交互方式运行它,而是将其作为服务运行。
您可以选择docker组成它们,使用docker ps查找它们的映像,然后执行它们。如果图像正在加载守护程序(服务器),则该方法将起作用;如果图像执行脚本然后退出,则该图像也将退出,从而使其无法输入。请参阅此question解释如何执行此操作。