標籤:docker ssh 串連
翻譯自:http://www.sebastien-han.fr/blog/2014/01/27/access-a-container-without-ssh/
先運行一個簡單的memcache容器:
$ sudo docker run -d -p 11211 bacongobbler/memcached memcached /usr/bin/memcached -m 64 -p 11211 -u memcache -l 0.0.0.0$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES0a9856723f90 192.168.0.127:5042/memcached:latest memcached /usr/bin/m 2 seconds ago Up 2 seconds 0.0.0.0:49153->11211/tcp pensive_pasteur
| 123456 |
$sudo docker run-d-p11211 bacongobbler/memcachedmemcached /usr/bin/memcached-m64 -p11211 -umemcache -l0.0.0.0 $sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES0a9856723f90 192.168.0.127:5042/memcached:latest memcached/usr/bin/m 2 secondsago Up2 seconds 0.0.0.0:49153->11211/tcp pensive_pasteur |
獲得運行在docker中進程的pid:
root@docker:~# ps faux |grep memcachedsyslog 29123 0.0 0.0 323216 1184 ? Sl 22:40 0:00 \_ memcached /usr/bin/memcached -m 64 -p 11211 -u memcache -l 0.0.0.0
| 123 |
root@docker:~# ps faux |grep memcachedsyslog 29123 0.0 0.0323216 1184? Sl 22:40 0:00 \_memcached /usr/bin/memcached-m64 -p11211 -umemcache -l0.0.0.0 |
安裝nsenter命令(util-linux包中),需要2.23release的linux。
$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.bz2$ bzip2 -d -c util-linux-2.24.tar.bz2 | tar xvf -$ cd util-linux-2.24/$ sudo ./configure --without-ncurses$ make nsenter$ cp nsenter /usr/local/bin
| 1234567 |
$wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.bz2$ bzip2-d-cutil-linux-2.24.tar.bz2| tarxvf -$cd util-linux-2.24/$ sudo./configure--without-ncurses$make nsenter$ cpnsenter /usr/local/bin |
然後,我們串連進入docker容器。
$ sudo nsenter -m -u -i -n -p -t 29123 /bin/sh# ps fauxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 11 0.0 0.0 4396 608 ? S 22:41 0:00 /bin/shroot 12 0.0 0.0 15272 1100 ? R+ 22:41 0:00 \_ ps fauxmemcache 1 0.0 0.0 323216 1184 ? Sl 22:40 0:00 memcached /usr/bin/memcached -m 64 -p 11211 -u memcache -l 0.0.0.0
| 1234567 |
$sudo nsenter-m-u-i-n-p-t29123 /bin/sh# ps fauxUSER PID %CPU%MEM VSZ RSS TTY STATSTART TIME COMMANDroot 11 0.0 0.0 4396 608? S 22:41 0:00/bin/shroot 12 0.0 0.0 15272 1100? R+ 22:41 0:00 \_ps fauxmemcache 1 0.0 0.0323216 1184? Sl 22:40 0:00memcached /usr/bin/memcached-m64 -p11211 -umemcache -l0.0.0.0 |
不通過SSH接入Docker