Docker 新手。
我正在尝试运行 ubuntu 图像容器。
执行 docker run ubuntu
后,我找不到带有 docker ps
的容器。
我尝试了 docker ps -a
,发现容器的状态是“10 秒前退出 (0)”。
但是通过运行 docker docker run -itd ubuntu /bin/bash
我能够让容器运行。
我不明白为什么第二个有效而第一个无效,我尝试搜索,但找不到答案。
答案 0 :(得分:1)
Docker 不仅仅用于运行像 ubuntu
这样的单个镜像实例,它的主要用途是运行应用程序。
当你运行 docker run ubuntu
时,它运行 ubuntu
然后退出,因为它没有任何主进程运行,所以退出。
但是如果您运行 docker run nginx
,它会显示在 docker ps
中,为什么?因为 nginx
有一个进程来运行这个容器。
试试这个:docker run exec -it ubuntu top
和 docker run exec -it nginx top
并查看 ID 为 1 的进程。看到任何区别了吗? top
容器中的 ubuntu
PID 为 1,但 nginx
容器中的 nginx ...
命令为 PID 1。
如果您退出 top
,您的容器会终止并停止,但如果您在 top
中退出 nginx
,您的 nginx
容器会继续运行。但是每当 nginx ...
命令在 nginx
容器中终止时,nginx
容器也会停止。
我建议使用其他在线资源来阅读有关 Docker 的更多信息。