在docker中,如果命令都执行完了,会自动关掉容器。

这就是为什么每次启动时要docker run -it images /bin/bash

这样就相当于守护进程,这个容器的命令一直没有执行完,不会被自动关掉。

和-d的意义是一样,也是守护进程。

另外在有dockerfile创建镜像时,会有cmd命令,用cmd命令启动一个脚本,然后在用这个镜像创建容器时,发现容器秒死,而且没办法start他。因为这个脚本的命令执行完了

自动被docke傻了,容器关掉,怎么启也启不了。

若想不被干掉,就在shell命令中加个无线循环,没60秒一次

while [1]

do

sleep 60

done

这样就行了。


【补充题外话】

加载一个容器时,多用exec命令,不要attach命令,因为attach命令容器导致两个人同时attach时,会让两台机器的命令冲突。


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐