– 語法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
– OPTIONS 參數說明:
- -i: 讓容器的標准輸入(STDIN)始終保持打開,即使沒有輸入任何指令(沒有附加)
- -t: 分配一個終端,這樣我們就可以使用命令來操作
- -d: 分離模式,讓命令在后台(指的是宿主后台)運行。
- –user:指定用戶運行,當我們需要 root 用戶權限時可以指定。
【注】一般使用 -it
就足夠了。
– COMMAND 參數:
command
指的是 shell
的類型,常見的有 bash
、sh
、zsh
,但是 Linux
系統大多數默認的是 bash
類型,新版 Mac OS
系統的話,默認的不再是 bash
,而是 zsh
。
– 查看正在運行的容器
docker ps
執行結果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 91af26862191 nginx "/docker-entrypoint.…" 7 hours ago Up 2 hours 0.0.0.0:80->80/tcp webserver
– 使用 exec 進入容器
docker exec -it webserver bash
# 或
docker exec -it 91af26862191 bash
就可以進入到容器內部的命令行界面。
如果需要root
權限的話,可以指定 root
用戶進入容器:
docker exec -it --user root webserver bash
# 或
docker exec -it --user root 91af26862191 bash
【注】webserver
與 91af26862191
都是容器的唯一標識,所以用哪個都可以。
一般容器里面的 Linux
是精簡版的,沒有 less 、cat 、vim/vi
等命令,如果需要的話可以自己安裝,默認自帶 APT
命令。
【注】如果是學習使用可以選擇在容器內部安裝其他命令,如果是正式環境的話推薦把各個容器的配置文件映射到宿主機器上(也就是裝 Docker 的機器)方便維護
。