質問: バックグラウンドモードで実行中のコンテナにbashまたはsshを取得する方法は? 実行中のdockerコンテナーにsshまたはbashしたい。例を参照してください:$ sudo docker run -d webserver webserver is clean image from ubuntu:14.04 $ sudo docker ps container id image command created status ports names 665b4a1e17b6 webserver:latest /bin/bash ... ... 22/tcp, 80/tcp loving_heisenberg 今、私はこのようなものを取得したいです(実行中のコンテナに入ります):$ sudo docker run -t -i webserver (or maybe 665b4a1e17b6 instead) $ root@665b4a1e17b6:/# however when i run the line above i get new container id $ root@42f1e37bd0e5:/# vagrantを使用し、vagrant sshと同様の動作を取得したいです。
回答: 答えはdockerのattachコマンドです。上記の私の例では、ソリューションは次のようになります。$ sudo docker attach 665b4a1e17b6 #by id or $ sudo docker attach loving_heisenberg #by name $ root@665b4a1e17b6:/# dockerバージョン1.3以降の場合:コンテナのシェルを取得する別の方法を提案したユーザーwir3dに感謝します。 attachを使用する場合、使用できるシェルのインスタンスは1つだけです。したがって、コンテナのシェルの新しいインスタンスを使用して新しいターミナルを開く場合は、次を実行するだけです。$ sudo docker exec -i -t 665b4a1e17b6 /bin/bash #by id または$ sudo docker exec -i -t loving_heisenberg /bin/bash #by name $ root@665b4a1e17b6:/#