Ubuntu环境下:
拉取最新的Ubuntu
docker pull ubuntu:latest
启动
docker run -it ubuntu:latest /bin/bash
更新apt-get
apt-get update
安装ssh、netstat
apt-get install -y openssh-server net-tools
配置ssh
mkdir /root/.ssh
touch /root/.ssh/authorized_keys
在宿主机子上执行ssh-keygen -t rsa,敲三次回车,把/root/.ssh/id_rsa.pub里的内容拷到容器内authorized_keys中去
创建脚本
vim /root/run.sh
#!/bin/bash
/usr/sbin/sshd -D
保存退出
chmod +x /root/run.sh
退出镜像
exit
保存镜像【创建镜像】
docker commit 07a4a6c467e2 sshd:ubuntu
使用镜像
docker run -p 10022:22 -d sshd:ubuntu /root/run.sh
从宿主机子登录[上文中,已经把id_rsa.pub放入了容器authorized_keys中]
ssh 192.168.199.209 -p 10022
CentOS环境下:
拉取最新的Centos
docker pull centos:latest
启动
docker run -it centos:latest /bin/bash
安装passwd,openssl,openssh-server
yum install -y passwd openssl openssh-server
配置ssh
mkdir /root/.ssh
touch /root/.ssh/authorized_keys
在宿主机子上执行ssh-keygen -t rsa,敲三次回车,把/root/.ssh/id_rsa.pub里的内容拷到容器内authorized_keys中去
创建脚本
vim /root/run.sh
#!/bin/bash
/usr/sbin/sshd -D
保存退出
chmod +x /root/run.sh
启动sshd
/usr/sbin/sshd
这一步,若报错,如
Could not load host key: /etc/ssh/ssh_host_rsa_key
则使用如下名令
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 【出现交互窗口,都按回车】
再次执行,便是启动了
这时,找出sshd进程pid【ps aux | grep sshd】,再kill掉
修改 /etc/ssh/sshd_config 配置信息
UsePAM yes 改为 UsePAM no
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
退出镜像
exit
保存镜像【创建镜像】
docker commit 07a4a6c467e2 sshd:centos
使用镜像
docker run -p 10122:22 -d sshd:centos /root/run.sh
从宿主机子登录[上文中,已经把id_rsa.pub放入了容器authorized_keys中]
ssh 192.168.199.209 -p 10122
最后,从上文中应该可以看出,其实创建Docker镜像,可以用Dockerfile,也可以直接docker commit。