国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

如何讓docker以daemon方式運(yùn)作/bin/bash
怪我咯
怪我咯 2017-04-21 10:55:35
0
5
1057

請(qǐng)教各位達(dá)人一個(gè)關(guān)於docker的問(wèn)題哈。我想在docker run的時(shí)候,用-d參數(shù)運(yùn)行/bin/bash,然後讓這個(gè)bash一直跑著,我要用的時(shí)候就docker attach上去。但是我一跑docker run -d .... /bin/bash,這個(gè)容器就運(yùn)行結(jié)束停下來(lái)了。這是為毛啊,有啥解決方案沒(méi)。。。

怪我咯
怪我咯

走同樣的路,發(fā)現(xiàn)不同的人生

全部回覆(5)
PHPzhong

我自己也遇到這個(gè)問(wèn)題。不過(guò)不同的時(shí),我希望docker run的時(shí)候,可以讓容器一直在後臺(tái)運(yùn)行,並允許我遠(yuǎn)端登陸進(jìn)去操作。

我把文章拷貝過(guò)來(lái)了:ssh遠(yuǎn)端登陸一個(gè)容器

----內(nèi)容開(kāi)始-----

啟動(dòng)了一個(gè)容器之後,我們可能需要用ssh登陸進(jìn)去進(jìn)行一些操作。為達(dá)到此目的,有2點(diǎn)需要保證:

  • 容器必須處?kù)哆\(yùn)作狀態(tài)。
  • openssh-server處?kù)秵?dòng)狀態(tài)。
注意:以下示例是在ubuntu/13.10中完成的

首先確保鏡像安裝有openssh-server服務(wù)

# 官方鏡像一般沒(méi)有安裝ssh服務(wù)端,so,需要安裝一個(gè)
apt-get install openssh-server
# 設(shè)置一個(gè)初始密碼
passwd 123
...

然後,提交鏡像:

docker commit CONTAINER_ID NAME/VERSION

最後,運(yùn)行鏡像,並讓生成的容器一直在後臺(tái)運(yùn)行:

# 第一個(gè)-d表示讓容器在后臺(tái)運(yùn)行
# 末尾的-D表示啟動(dòng)ssh的daemon模式,不然容器啟動(dòng)后立刻就變?yōu)橥V範(fàn)顟B(tài)了
docker run -d NAME/VERSION /etc/init.d/ssh start -D

現(xiàn)在,便可以ssh登陸容器了。

# 查詢?nèi)萜鱅P
docker inspect CONTAINER_ID | grep IP

# 登入
ssh root@IP
# 輸入密碼 123完成登陸
# 為保證安全,請(qǐng)即刻用passwd修改密碼
左手右手慢動(dòng)作

docker run指定的命令如果不是那些一直掛起的命令(比如運(yùn)行top,不斷echo),就是會(huì)自動(dòng)退出的。-d命令是設(shè)置detach為true,根據(jù)官方的文檔,意思是讓這個(gè)命令在后臺(tái)運(yùn)行,但并不是一直運(yùn)行(我們?cè)谝粋€(gè)正常的Linux Terminal中運(yùn)行/bin/bash,運(yùn)行完了也就完了,不會(huì)一直掛著等待響應(yīng)的,所以確實(shí)沒(méi)辦法用daemon方式來(lái)跑/bin/bash)。

這個(gè)地方官方早期和現(xiàn)在的文檔也確實(shí)有些前後不一致,現(xiàn)在是detach,早期的文檔說(shuō)指定-d以daemon方式來(lái)運(yùn)行容器,可能存在一定的誤解。

另外,如果你需要跑容器裡的bash,直接運(yùn)行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果覺(jué)得參數(shù)比docker attach多,可以設(shè)定一個(gè)別名(alias)來(lái)解決:

alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'

設(shè)定好別名後,直接運(yùn)作dockerbash就可以進(jìn)入容器的bash了。

PHPzhong

用supervisor就可以實(shí)現(xiàn)。而且可以同時(shí)啟動(dòng)多個(gè)服務(wù)。
先yum -y install supervisor 安裝軟體包,修改設(shè)定檔/etc/supervisord.conf
增加自己要啟動(dòng)的服務(wù),如sshd 。

具體的話,可以參考這篇文章:http://openstack.blog.163.com/blog/static/236387267201491734019283/

Peter_Zhu

docker run --attach=stdin -d image bash,-d參數(shù)預(yù)設(shè)關(guān)閉了stdin。

劉奇

建議在建置映像的Dockerfile檔案中加一句:
CMD tail -f
如果還有其他指令
CMD 其他指令 && tail -f
希望對(duì)你有幫助

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板