コマンドしたい(docker container exec)
$ docker exec オプション コンテナ名 コマンド
$ docker container exec オプション コンテナ名 コマンド // Docker 17.06以降で導入
$ docker exec -it コンテナ名 bash
docker container execコマンドで、コンテナ内で新しいコマンドを実行できます。
コンテナなあらかじめ起動しておく必要があります。
停止中(or 一時停止中)のコンテナに対して実行するとエラーになります。
注釈
docker execとdocker container execは同じものです。
docker container execは、Dockerコマンドを整理するために17.06以降で導入されたコマンドです。
最新のドキュメントではdocker container execの利用が推奨されているそうです。
シェルしたい(-it)
$ docker container exec -it コンテナ名 bash
$ docker container exec -it my-ubuntu bash
-itオプションは-i / --interactiveと-t / --ttyのことで、コンテナ内のシェルを起動して操作したい場合に必須のオプションです。
起動していないコンテナに対してはdocker container runを使います。
バックグラウンドしたい(-d / --detach)
$ docker exec -d コンテナ名 コマンド
-dオプションで、コマンドをバックグラウンド実行できます。
環境変数したい(-e / --env)
$ docker exec --env 環境変数名=値 コンテナ名 コマンド
--env 環境変数=値オプションで、コマンド実行時の環境変数を設定できます。
作業ディレクトリを変えたい(-w / --workdir)
$ docker exec --workdir 作業ディレクトリ コンテナ名 コマンド
--workdir パスオプションで、コンテナ内の作業ディレクトリを変更できます。
ユーザーを変えたい(-u / --user)
$ docker exec --user ユーザー名 コンテナ名 コマンド
--user ユーザー名|UIDオプションで、コマンドを実行するユーザーを変更できます。