构建支持SSH服务的镜像
来源:互联网 发布:工程造价软件破解版 编辑:程序博客网 时间:2024/06/05 15:34
linux系统管理员通过SSH服务来管理操作系统,进入容器已经有exec命令可以用,但是远程主机如果访问容器没办法,我们仍然可以用ssh服务来维护,这就需要我们构建自定义镜像支持ssh连接。构建自定义镜像可以通过docker commit 命令基于已有的镜像构建,也可以通过Dockerfile构建,这里使用后者
1、前期准备
如图,新建个独立文件夹,需要一下三个文件
文件已上传github:https://github.com/1823667370/docker-ssh
1)宿主主机公钥文件authorized_keys
在宿主主机用ssh-keygen -t rsa命令生成公钥,并将公钥信息复制到authorized_keys
如图生成公钥,路径是/root/.ssh/id_rsa.pub,然后再当前目录执行命令:
cat /root/.ssh/id_rsa.pub >authorized-keys 此时已有authorized-keys文件了
2)Dockerfile文件
其中不理解的直接看注释句即可
FROM selenium/hubLABEL authors=songerUSER root#安装ssh服务RUN apt-get update&&apt-get install -y openssh-server#要正常启动ssh服务,需要目录/var/run/ssd存在RUN mkdir -p /var/run/sshd#在root用户下创建.ssh目录,并复制需要登录的公钥信息(一般为本地主机用户目录下的.ssh/id_rsa.pub文件,#可由ssh-keygen -t rsa命令生成,cat /root/.ssh/id_rsa.pub >authorized-keys)到authorized-keys文件中RUN mkdir -p /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_keysADD run.sh /root/run.sh#RUN echo "#!/bin/bash" > /root/run.sh#RUN echo "/usr/sbin/sshd -D" >> /root/run.shRUN chmod u+x /root/run.sh#暴露端口EXPOSE 22#设置默认启动ssh的命令#CMD ["/root/run.sh"]
3)run.sh文件
#/bin/bash/usr/sbin/sshd -D2、构建ssh服务的镜像并运行
docker build -t selenium/ssh /opt/songer/ssh_selenium/
如图镜像已经构建好了
运行镜像
docker run -d -p 5022:22 selenium/ssh
3、测试ssh连接
ssh 192.168.10.241 -p 5022,测试拒绝连接
先排查容器端口22是不是处于监听状态,排除容器问题
docker exec -it 128 /bin/bash 进入容器后输入netstat -tunlp查看处于监听的端口,发现只有selenium端口4444,定位是服务没起来
手动启动 /usr/sbin/sshd -D没反应,去掉-D启动成功
退出容器继续测试连接,连接成功,进入容器
- 构建支持SSH服务的镜像
- 使用Dockerfile构建支持ssh服务自启动的容器镜像
- Docker创建支持ssh服务的容器和镜像
- Docker创建支持ssh服务的容器和镜像
- 创建支持SSH服务的Docker镜像
- 创建支持SSH服务的CentOS镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- 创建支持SSH服务的Docker镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- <转>创建支持SSH服务的Docker镜像
- Docker- 创建支持SSH服务的容器镜像
- 创建支持ssh的docker镜像
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- 使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
- Docker实战:使用Dockerfile创建带Apache服务并支持ssh的Centos Docker镜像
- iOS 极光推送没有声音怎么办?
- 网络编程2
- IT风投与中国
- jq插件 datatable的使用(附上window一些方法)
- 二周三次课
- 构建支持SSH服务的镜像
- 《Spring实战》读书笔记——第一章 Spring之旅
- Go 学习笔记:延迟执行函数 defer
- jquery ajax异步 获得返回值
- markdown backup
- easyui相关笔记
- Java面试题全集(上)
- python yield
- RocketMQ原理解析-consumer 6.pull消息消费