docker centos7 安装ssh等基础软件

来源:互联网 发布:javac 多个java文件 编辑:程序博客网 时间:2024/05/23 02:11

本教程主要在原有centos镜像的基础上,打包新的包含有ssh等基础软件的镜像,方便开发时向其他用户进行分配和使用。
首先,假设您已经具有docker的基础知识,如果您不够熟悉,可以参考《Docker — 从入门到实践》一书,或者其他教程。
首先,我们可以建立一个新的目录,centos-ssh,然后进入目录,建立Dockerfile文件,
内容如下,

# 基础镜像FROM hub.c.163.com/library/centos:7.2.1511# 基本个人信息MAINTAINER liqingfeng liqingfengzzu@163.com#替换为网易源,其中CentOS7-Base-163.repo为网易的库文件ADD CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo#安装常用软件RUN yum install -y sudo vim tar wget curl rsync bzip2 iptables tcpdump less net-tools lsof sysstat cronie passwd openssl openssh-server openssh-clients screen strace telnet unzip python-setuptools\&& yum clean all#生成ssh所需要的密钥等RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''#允许RSA认证RUN echo "RSAAuthentication yes" >> /etc/ssh/sshd_config# 允许公钥认证RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config# 安装supervisor,并设置子目录配置文件夹位置RUN easy_install supervisor\ && cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime\ && mkdir -p /etc/supervisor/conf.d/\ && /usr/bin/echo_supervisord_conf > /etc/supervisord.conf\ && echo [include] >> /etc/supervisord.conf\ && echo 'files = /etc/supervisor/conf.d/*.conf' >> /etc/supervisord.conf\ && yum clean all#ssh的supervisor配置COPY sshd.conf /etc/supervisor/conf.d/sshd.conf#设置密码,注意,这里设置的默认密码为123456&*RUN echo 'root:123456&*' | chpasswd#暴露22端口EXPOSE 22#启动CMD ["/usr/bin/supervisord"]

其中,这里分别用到了两个额外的文件,分别是网易源的配置文件CentOS7-Base-163.repo,另外一个ssh的supervisor配置文件sshd.conf
前者可以在这里找到对应的网易配置,如我们选择的是Centos7配置,下载后,需要放在与Dockfile 同样的文件夹下。
另外,sshd.conf 文件则如下所示,

[supervisord]nodaemon=true[program:sshd]command=/usr/sbin/sshd -D

当三个文件都准备好后,可以运行构建命令,开始构建

docker build -t my/centos .

生成后,可以用docker images查看镜像。
注意,我们在Dockfile中配置了默认的账号和密码,如果需要改变,则注意更改。
启动相关的docker容器后,即可通过ssh进行访问。