为什么有些容器在docker run的时候需要接 -it ,有些不需要?

这是我们的Dockerfile文件

FROM busybox ENV sg WANG CMD ["/bin/sh", "-c", "echo wangwenlong;sleep 120;echo ok"]

创建一个基于base镜像busybox的镜像

[root@localhost busybox]# docker build -t busybox .

创建并运行一个容器

[root@localhost busybox]# docker run -d --name w-busybox busybox

查看该容器是否运行

[root@localhost busybox]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 596f2753e6b5 busybox "/bin/sh -c 'echo wa…" 2 seconds ago Up 1 second w-busybox

查看该容器中运行的进程

[root@localhost busybox]# docker top w-busybox UID PID PPID C STIME TTY TIME CMD root 10382 10363 1 18:09 ? 00:00:00 /bin/sh -c echo wangwenlong;sleep 120;echo ok root 10412 10382 0 18:09 ? 00:00:00 sleep 120

120秒后

查看该容器

[root@localhost busybox]# docker top w-busybox Error response from daemon: Container 596f2753e6b500ce05638995af11c8aae6151615f9a70c2fbbbc79a43c47c3f6 is not running

以上内容都说明了如果build一个镜像时使用

CMD ["解释器"]

我们要使用以下进行创建运行容器

[root@localhost busybox]# docker run -it

该容器可以运行起来而不会退出

而使用

[root@localhost busybox]# docker run

会发现该容器只是创建成功但是不能运行

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsjjy.html