docker容器ssh_centos的制作 - Dockerfile镜像

1. 创建容器的ssh端口访问 :
cd /opt
mkdir ssh_cos/
cd ssh_cos/
touch Dockerfile run.sh
vi run.sh :
#!/bin/bash
/usr/sbin/sshd -D
生成ssh秘钥对 :
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub > authorized_keys
vi Dockerfile :
#设置继承镜像
FROM mcos:7


#作者信息
MAINTAINER hbw


#运行更新命令
RUN yum -y update


#安装ssh服务
RUN yum -y install openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir /root/.ssh


#取消pam限制
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd


#复制配置文件到相应位置并赋予脚本可执行权限
ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh


#开放端口
EXPOSE 22


#设置启动命令
CMD ["/run.sh"]
创建镜像 :
cd ssh_cos
docker build -t ssh:cos .
查看 :
docker images
测试 :
docker run -p 10122:22 --name ssh_cos -d ssh:cos sleep infinity
进入容器 :
docker exec -it  ssh_cos /bin/bash
sh run.sh : 报错 :
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
解决 :
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
先连接主机,在主机中执行以下命令,就进入docker容器,即通过ssh连接上了docker容器 :
ssh 192.168.2.108 -p 10122 

你可能感兴趣的:(java基础)