docker基础 | 为centos镜像添加SSH服务

旧巷老猫 提交于 2020-02-26 09:23:30

docker本身提供有attachexec等方法进入容器中,本身却没有支持远程管理容器的方法。本文介绍为centos基础镜像添加SSH支持

手动构建

docker pull centos:7:下载一个contos镜像
docker run -it --name ssh_cenots7 docker.io/centos:7 bash:运行并进入centos7容器
yum install openssh-server:下载并安装penssh-server
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:配置密钥文件
vi /etc/pam.d/sshd:注销pam_loginuid.so,关闭pam登陆限制
passwd root:设置修改root密码或者添加账户

创建run.sh文件,并添加运行权限,chmod +x run.sh

#!/bin/bash
/usr/sbin/sshd -D

docker commit ssh_cenots7 sshd:centos7:将容器制作为镜像
docker run -p 2222:22 -d sshd:centos7 /run.sh:运行sshd镜像,之后可以使用ip地址连接2222端口ssh进入docker容器

使用dockerfile构建

FROM centos:7

#作者信息
MAINTAINER shuangmu

RUN yum install -y openssh-server
RUN 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
#取消pam登陆限制
RUN sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd
#修改root密码
RUN echo "root:root" | chpasswd
COPY run.sh /run.sh
RUN chmod 755 /run.sh
#开放端口
EXPOSE 22

CMD ["/run.sh"]

使用docker build -t ssh:centos_dockerfile . 进行构建

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!