我尝试使用以下命令启动容器
sudo docker run ubuntu
之后我用核对了
sudo docker ps -a
发现容器已退出
为什么退出?
如果没有指定-it并且在要求时附加到它,我怎么能让它在backgroud中运行?
答案 0 :(得分:23)
由我自己解决,保持容器运行并等待进一步“附加”或“执行”的优雅方法如下(通过-i选项保持STDIN打开)
docker run -i -d ubuntu
答案 1 :(得分:3)
您需要使用不会退出的docker run命令启动应用程序。
示例:
show full processlist;
答案 2 :(得分:0)
正确的语法是
(来自docker run --help
)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
您忘记指定命令。
你应该看一下docker hub
https://registry.hub.docker.com/
例如对于nginx,如果你看一下
https://hub.docker.com/_/nginx/
你会找到
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
如果你看一下
https://github.com/nginxinc/docker-nginx/blob/7f3ef0927ec619d20181e677c97f991df0d7d446/Dockerfile
你会注意到Dockerfile的最后一行是
CMD ["nginx", "-g", "daemon off;"]
这意味着当您启动docker image nginx时,隐式操作是启动nginx。
答案 3 :(得分:0)
如果您希望容器不存在,则必须使用-d
参数
所以看起来像这样:
docker run -d ubuntu