前景提要
【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>>>
docker本身提供有 attach 、 exec 等方法进入容器中,本身却没有支持远程管理容器的方法。本文介绍为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 . 进行构建