Dockerコンテナへの入り方

この数週間Dockerでの環境作成にかかりっきりです。いじくってた当初は、

# docker run -it hoge/centos:latest /bin/bash

などと起動して、起動された/bin/bashでいろいろやったあと、Ctrl-Dで抜けてしまうと、そのコンテナがexit状態になってしまって、なんだか不便だなぁと。
調べていくうちに、やっぱりそんな不便な訳はなくて、起動すみDockerコンテナへあとから入る方法があることがわかりました。

execを使う

まず、dockerコンテナで /bin/init でもって起動、その後/bin/bashを当該コンテナで動かす。

# docker run --name fuga hoge/centos:latest /sbin/init
# docker exec -it fuga /bin/bash

attachを使う

/bin/bashで起動したコンテナに、後からattachする。

# docker run --name fuga hoge/centos:latest /bin/bash
# docker attach -it fuga

後者の方法は/bin/bashにattachするイメージみたいで、複数のウィンドウでattachしてなにか作業すると全部のターミナルで同じ文字列がエコーバックされます。