docker exec
套件與執行環境
用法
docker exec -it <container> <command>在一個已經執行的容器裡再跑一個行程;容器停著就會失敗,而精簡映像裡沒有 bash,得用 sh 進去。
常用選項
| 選項 | 含義 |
|---|---|
| -it | interactive terminal, for a shell |
| -u <user> | run as another user, e.g. root |
| -w <dir> | start in that directory |
| -e KEY=value | set a variable for this process only |
| -d | run it in the background |
範例
docker exec -it web basha shell inside a running container
docker exec -u root -it web shas root, and sh because slim images have no bash
docker exec -it db psql -U postgresruns a client that lives inside the container
問題永遠是什麼裝到哪裡:裝進這個專案,還是裝到整台機器上。
怎麼看
- 方括號 [ ] 表示這部分可以不寫。
- 省略號 … 表示可以寫多個。
- 選項區分大小寫——有些命令裡 -r 和 -R 不是一回事。
常見問題
Q. docker exec 是做什麼的?
在一個已經執行的容器裡再跑一個行程;容器停著就會失敗,而精簡映像裡沒有 bash,得用 sh 進去。
Q. 怎麼寫?
docker exec -it <container> <command> —— 方括號表示可以省略的部分。
Q. 值得記的選項有幾個?
這裡列了 5 個,完整列表在 man docker。這條命令屬於套件與執行環境。
相關命令
man 手冊: man docker-exec