初识Docker:BusyBox容器后台运行失败
1、问题描述:我在进行Docker网络实验时,使用docker run -d busybox命令时,busybox无法保持后台长期运行。
=============================================================================================================================
解决问题可参考:http://dockone.io/question/1544
一、理解以下参数含义
-d:--detach=false 以后台模式运行命令
-i:--interactive=false 开启标准输入,即使未与容器连接,也维持标准输入
-t:--tty=false 使用TTY模式(pseudo-TTY)若要使用bash,则必须设置该选项。
二、举几个例子理解参数作用(拿/bin/sh举例)
(1)不带任何参数
因为sh需要用户输入命令,但是当前容器并没有开启标准输入,sh所以会退出,容器直接退出。
(2)只是用-i参数开启标准输入
只使用-i参数,开启标准输入所以你可以和容器进行交互,但是因为没有tty所以不会显示shell。
此时会卡在命令行界面,但是通过另外再开一个窗口,可以发现busybox已经在后台运行,此时可以在新窗口中进行操作。
(3)只是用-it参数开启标准输入和tty即交互模式
(4)只是用-d是后台运行
因为只使用了后台模式,但是没有-i,所以当没有和容器链接时,不会维持标准输入,sh退出,容器直接退出。
(5)使用-itd参数开启标准输入和tty即交互模式和后台运行
因为-i的存在,所以即使未与容器连接,也维持标准输入,sh持续运行。