docker exec

パッケージと実行環境

書き方

docker exec -it <container> <command>

すでに動いているコンテナの中で別のプロセスを走らせます。止まっているコンテナには使えず、軽いイメージにはbashが無いのでshで入ります。

よく使うオプション

オプション意味
-itinteractive terminal, for a shell
-u <user>run as another user, e.g. root
-w <dir>start in that directory
-e KEY=valueset a variable for this process only
-drun it in the background

docker exec -it web bash

a shell inside a running container

docker exec -u root -it web sh

as root, and sh because slim images have no bash

docker exec -it db psql -U postgres

runs 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