dsh
alias dsh='boot2docker ssh -t ". /home/docker/.profile; sudo docker-enter"'
条件
docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
boot2dockerにdocker-enter
コマンドを追加しておくこと。
Debian jessieでホストにnsenter
とdocker-enter
を作ってくれる
jpetazzo/nsenterというありがたいコンテナがあるので使わせてもらいましょう。
一応解説
ssh -t
でpseudo-ttyオプションがつき、インタラクティブにコマンド実行ができます。
あくまでpseudoなので、dockerユーザーのプロファイルを読み込むために
. /home/docker/.profile
を手前につけています。
こんなかんじで
❯ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32a9db8f33e4 centos:latest bash 59 minutes ago Up 59 minutes pensive_mayer
❯ dsh 32
root@32a9db8f33e4:/#
❯ alias dps='docker ps'
❯ alias dp='dps -lq'
❯ dsh `dp`
root@32a9db8f33e4:/#