#Docker创建可以SSH连接的容器
1.安装Docker(略)
2.获取基础镜像
docker pull centos #这样获取的是官方Hub的Centos 7,特别精简
docker images
可查看镜像列表.
3.运行一个容器
docker run -t -i centos
4.添加SSH到当前容器
yum install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #换个快一点的源,这是我的习惯
yum clean all
yum install passwd
yum install openssh-server #安装ssh服务端
echo 'passw0rd' | passwd root --stdin #设置root密码
vi /etc/ssh/sshd_config #设置端口,注释不需要的设置,如:HostKey
#生成dsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#生成rsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#生成ecdsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
#生成ed25519_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
vi ~/.ssh/authorized_keys #[可选]添加个人公钥,设置证书访问
/usr/sbin/sshd #如果不报错,说明可以启动了.可ss -ln 检查
exit
#记住这个容器的ID,ID就是PS1的主机名字段,如PS1为'[root@f86b75ebc424 ~]#'的容器,ID就是'f86b75ebc424'
此时,这个容器就已经关闭了.
5.提交更改为新镜像
docker commit f86b75ebc424 c7ssh #使用上一步的容器ID,提交为名为c7ssh镜像
提交成功后,使用docker images
可以查看到
6.运行新的镜像
docker run -d -p 220:22 c7ssh /usr/sbin/sshd -D
-d
后台运行容器-p
容器端口映射到主机[可选]
使用docker ps
查看运行的容器
此时你可以直接连接容器,也可以通过端口映射连接容器
ssh IP #docker inspect 容器ID 可查看容器信息可以得到容器的IP
或
ssh 127.0.0.1:220
#题外话:进入docker容器
docker exec -i -t centos /bin/bash
#端口映射,并且直接命名
docker run --name centos7-lnmp1.3-ssh -d -p 53080:80 -p 53081:81 -p 53443:443 -p 53306:3306 -p 53022:22 centos7-ssh-lnmp1.3-ftp /usr/sbin/sshd -D
然后随意操作吧
7.完结
至此,一个可以使用SSH连接的容器就做好了.