如何让docker以daemon方式运行/bin/bash

dhflxejv 2014-07-11 02:48:37
请教各位达人一个关于docker的问题哈。我想在docker run的时候,用-d参数运行/bin/bash,然后让这个bash一直跑着,我要用的时候就docker attach上去。但是我一跑docker run -d .... /bin/bash,这个容器就运行结束停下来了。这是什么原因呢?求解?
...全文
1163 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_35066864 2021-06-24
  • 打赏
  • 举报
回复
int main(){
printf("Hello world!\r\n");
return 0;
}

 

tifayuki 2014-07-15
  • 打赏
  • 举报
回复
这种需求最好还是用ssl image 直接运行 docker run -p 22:22 tutum/ubuntu 即可 参看: https://github.com/tutumcloud/tutum-ubuntu
cfobrwkymwu 2014-07-15
  • 打赏
  • 举报
回复
启动了一个容器之后,我们可能需要用ssh登陆进去进行一些操作。为达到此目的,有2点需要保证: 容器必须处于运行状态。 openssh-server处于启动状态。 注意:以下示例是在ubuntu/13.10中完成的 首先确保镜像安装有openssh-server服务 # 官方镜像一般没有安装ssh服务端,so,需要安装一个 apt-get install openssh-server # 设置一个初始密码 passwd 123 ... 然后,提交镜像: docker commit CONTAINER_ID NAME/VERSION 最后,运行镜像,并让生成的容器一直在后台运行: # 第一个-d表示让容器在后台运行 # 末尾的-D表示启动ssh的daemon模式,不然容器启动后立刻就变为停止状态了 docker run -d NAME/VERSION /etc/init.d/ssh start -D 现在,便可以ssh登陆容器了。 # 查询容器IP docker inspect CONTAINER_ID | grep IP # 登入 ssh root@IP # 输入密码 123完成登陆 # 为保证安全,请即刻用passwd修改密码
hyewzlsu 2014-07-11
  • 打赏
  • 举报
回复
docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。 这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。 另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决: alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash' 设置好别名后,直接运行dockerbash就可以进入容器的bash了

1,163

社区成员

发帖
与我相关
我的任务
社区描述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。
社区管理员
  • Docker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧