起動中の Docker コンテナに別ターミナルでアクセスする
あるターミナルから $ docker attach
コマンドでコンテナに接続し、サーバプロセスを起動させた。すると、そのターミナルはサーバが起動しっぱなしになるので、他のコマンドを叩いたりできなくなってしまう。
そこで別のターミナルを開いて、再度 $ docker attach
コマンドを叩くと、先程のターミナルと同じシェルに入ってしまい、上手く叩けないのだ。
起動中のターミナルとは別のターミナルで Docker コンテナにアクセスするには、$ docker exec
コマンドを使う。
# 起動中のコンテナの `CONTAINER ID` を調べる
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d9896206501 centos:7 "bash" 18 hours ago Up 18 hours 0.0.0.0:8080->8080/tcp my_centos_container
# 先程の `CONTAINER ID` を指定して bash に接続する
$ docker exec -it 6d9896206501 bash
# ログイン後。別ターミナルで動かしているプロセスも確認できる
$$ ps aux
Docker はサブコマンドが多くてつらみ。