我尝试使用 docker-compose 文件而不是长命令行来运行 docker 容器。
我想运行基于 ubuntu:latest 的 docker-compose 文件。容器已创建但无法运行。
version: "3.9"
services:
ubuntu:
image: ubuntu:latest
container_name: nginx_from_scratch3
ports:
- "80:80"
但在我尝试添加我的 docker-compose 文件行之前
command: bash
并注意到变化。我认为运行容器后可以继续工作。但这并没有发生。
但另一方面,如果我使用 nginx 镜像,一切都可以完美运行。
version: "3.9"
services:
nginx1:
image: nginx
container_name: nginx_from_scratch4
ports:
- "80:80"
为什么 docker-compose 文件对 nginx 镜像有效,而对 ubuntu 镜像无效。
答案 0 :(得分:0)
如果里面的任务完成,Docker 容器就会退出。因此,当您运行 nginx 时,它会自动启动 nginx 并使其保持活动状态。至于ubuntu,没有任何任务可以继续运行,容器立即结束。所以如果你想让它活着,即使它没有任何工作:添加 tail -f,像这样:
version: "3.9"
services:
ubuntu:
image: ubuntu
command: tail -F anything
执行 docker container ps 后,您将看到它正在运行。
你可以用
移动到它docker exec -it container_name bash