3 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
在搭建開(kāi)發(fā)環(huán)境時(shí),我們都希望搭建過(guò)程能夠簡(jiǎn)單,并且一勞永逸,其他的同事可以復(fù)用已經(jīng)搭建好的開(kāi)發(fā)環(huán)境以節(jié)省開(kāi)發(fā)時(shí)間。而在搭建開(kāi)發(fā)環(huán)境時(shí),我們經(jīng)常會(huì)被復(fù)雜的配置以及重復(fù)的下載安裝所困擾。在Docker技術(shù)未出現(xiàn)之前,我們可以使用Pupet、Chef、Ansible等配置管理工具把復(fù)雜的配置管理起來(lái),這樣的管理配置技術(shù)仍然是目前比較流行的方式之一。配置管理工具使用的都是自己的DSL語(yǔ)法定義,考慮到環(huán)境的復(fù)雜性,配置一套通用的開(kāi)發(fā)環(huán)境需要針對(duì)各個(gè)系統(tǒng)定制,對(duì)于大部分開(kāi)發(fā)環(huán)境這種維護(hù)成本仍然是很高的。Docker技術(shù)出現(xiàn)之后,系統(tǒng)的依賴問(wèn)題得到了徹底的解決,我們可以通過(guò)鏡像的方式簡(jiǎn)化環(huán)境的安裝。結(jié)合Docker的開(kāi)發(fā)部署工具Fig,我們可以使用fig.yml文件來(lái)定義所有的環(huán)境,一次定義,多處使用,簡(jiǎn)單而且高效。

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
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了
- 3 回答
- 0 關(guān)注
- 1245 瀏覽
添加回答
舉報(bào)