前面了解了如何創(chuàng)建container了拧额,那么自然而然有人會問泛豪,接下來我怎么進(jìn)入running的container? 實(shí)際上,進(jìn)入Docker container有好幾種方式:
1豌蟋、docker exec
2其骄、docker attach
3崔列、ssh
使用docker exec
使用docker attach
缺點(diǎn):當(dāng)多個窗口同時(shí)attach到同一個容器時(shí)摧莽,所有的窗口都會同步的顯示挑社,假如其中的一個窗口發(fā)生阻塞時(shí)陨界,其它的窗口也會阻塞,docker attach命令可以說是最不方便的進(jìn)入后臺docker容器的方法痛阻。
使用ssh
ssh的方式使用場景比較單一菌瘪,這要求需要事先登錄container修改sshd服務(wù)(可能需要安裝sshd服務(wù))。然后就可以從宿主機(jī)直接ssh到container中阱当。
例如:root@Ubuntu-001:~# ssh shayu@172.17.0.2
#shayu是容器內(nèi)創(chuàng)建的用戶
#172.17.0.2是docker自動為創(chuàng)建的容器分配的IP麻车,可以通過docker inspect containerID查詢
Ctrl + p and Ctrl + q 退出container或者exit 退出container。
而實(shí)際上docker run可以直接進(jìn)入container
但是有些時(shí)候run container的時(shí)候并不一定要進(jìn)入container斗这,只需要后臺run起來就可以动猬,所以-d的作用就在于此。實(shí)際上大多數(shù)情況run時(shí)會加上-d參數(shù)表箭,等到后續(xù)需要進(jìn)入container才使用exec進(jìn)入(exec是最常用的)赁咙。
當(dāng)然我們還可以利用第三方的工具,例如nsenter免钻,有興趣的讀者可以研究下彼水。這里不再演示。