发布于 2015-09-10 16:07:16 | 231 次阅读 | 评论: 0 | 来源: 网络整理
注解
Video:
I’ve created a little screencast to show how to create an SSHd service and connect to it. It is something like 11 minutes and not entirely smooth, but it gives you a good idea.
注解
This screencast was created before Docker version 0.5.2, so the daemon is unprotected and available via a TCP port. When you run through the same steps in a newer version of Docker, you will need to add sudo in front of each docker command in order to reach the daemon over its protected Unix socket.
You can also get this sshd container by using:
sudo docker pull dhrp/sshd
The password is screencast.
Video’s Transcription:
# Hello! We are going to try and install openssh on a container and run it as a service # let's pull ubuntu to get a base ubuntu image. $ docker pull ubuntu # I had it so it was quick # now let's connect using -i for interactive and with -t for terminal # we execute /bin/bash to get a prompt. $ docker run -i -t ubuntu /bin/bash # yes! we are in! # now lets install openssh $ apt-get update $ apt-get install openssh-server # ok. lets see if we can run it. $ which sshd # we need to create privilege separation directory $ mkdir /var/run/sshd $ /usr/sbin/sshd $ exit # now let's commit it # which container was it? $ docker ps -a |more $ docker commit a30a3a2f2b130749995f5902f079dc6ad31ea0621fac595128ec59c6da07feea dhrp/sshd # I gave the name dhrp/sshd for the container # now we can run it again $ docker run -d dhrp/sshd /usr/sbin/sshd -D # D for daemon mode # is it running? $ docker ps # yes! # let's stop it $ docker stop 0ebf7cec294755399d063f4b1627980d4cbff7d999f0bc82b59c300f8536a562 $ docker ps # and reconnect, but now open a port to it $ docker run -d -p 22 dhrp/sshd /usr/sbin/sshd -D $ docker port b2b407cf22cf8e7fa3736fa8852713571074536b1d31def3fdfcd9fa4fd8c8c5 22 # it has now given us a port to connect to # we have to connect using a public ip of our host $ hostname # *ifconfig* is deprecated, better use *ip addr show* now $ ifconfig $ ssh root@192.168.33.10 -p 49153 # Ah! forgot to set root passwd $ docker commit b2b407cf22cf8e7fa3736fa8852713571074536b1d31def3fdfcd9fa4fd8c8c5 dhrp/sshd $ docker ps -a $ docker run -i -t dhrp/sshd /bin/bash $ passwd $ exit $ docker commit 9e863f0ca0af31c8b951048ba87641d67c382d08d655c2e4879c51410e0fedc1 dhrp/sshd $ docker run -d -p 22 dhrp/sshd /usr/sbin/sshd -D $ docker port a0aaa9558c90cf5c7782648df904a82365ebacce523e4acc085ac1213bfe2206 22 # *ifconfig* is deprecated, better use *ip addr show* now $ ifconfig $ ssh root@192.168.33.10 -p 49154 # Thanks for watching, Thatcher thatcher@dotcloud.com
For Ubuntu 13.10 using stackbrew/ubuntu, you may need do these additional steps: