[Docker] 用 docker exec 在執行中的 container 裡叫出 shell
今天想用 docker 跑一個 moinmoin wiki 的 container,可是一直遇到權限的問題,
想去 debug,但是 container 一起來就是跑 web app,
要怎麼連進去一個已經在跑的 container 呢?
直覺想到的 docker attach 是不行的,因為拿不到 console…
找了一下,原來可以用 docker exec 在一個已經在跑的 container 裡面,
再執行一個程式,這樣就可以再跑出一個 shell 了~
參考資料:
How to get bash or ssh into a running container in background mode?
舉例來說,我先用下面的指令,把 moinmoin 的 container 執行起來:
docker run --rm -it -p 20080:80 -v /moin:/usr/local/share/moin:Z --name=wiki eternnoir/moinmoin
這個 container 一執行起來就會執行 uwsgi 來跑 web app,
但這時可以用 docker exec 來連到 container 裡面,多開一個 shell 來 debug,
就可以來檢查像是 moin 這個目錄下的東西有沒有問題了:
testuser@localhost ~ $ docker exec -it wiki /bin/bash root@87af42b06fc0:/usr/local/share# ll total 20 drwxrwxr-x. 2 root staff 4096 Jun 26 2014 ca-certificates drwxrwsr-x. 2 root staff 4096 Feb 25 2015 fonts drwxr-xr-x. 2 root root 4096 Apr 16 2014 man drwxr-xr-x. 6 1000 1000 58 Dec 14 02:37 moin drwxrwsr-x. 7 root staff 4096 Feb 25 2015 sgml drwxrwsr-x. 6 root staff 4096 Feb 25 2015 xml
(本頁面已被瀏覽過 990 次)