Docker-通过dockerfile构建镜像(需测试)
# 设置基本的镜像,后续命令都以这个镜像为基础
FROM kinogmt/centos-ssh:6.7
# 作者信息
MAINTAINER yaosong, http://yaosong5@qq.com
# RUN命令会在上面指定的镜像里执行任何命令
RUN yum install passwd openssl openssh-server -y \
&& echo '123456' | passwd --stdin root \
&& touch /etc/ssh/ssh_host_rsa_key \
&& touch /etc/ssh/ssh_host_ecdsa_key \
&& chmod 600 /etc/ssh/ssh_host_rsa_key \
&& chmod 600 /etc/ssh/ssh_host_dsa_key \
&& chown root /etc/ssh/ssh_host_rsa_key \
&& chown root /etc/ssh/ssh_host_dsa_key \
&& mkdir -p /root/.ssh \
&& mkdir /var/run/sshd \
&& touch /root/.ssh/config \
&& echo "StrictHostKeyChecking no" > /root/.ssh/config \
&& sed -i "a UserKnownHostsFile /dev/null" /root/.ssh/config \
&& ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -y \
&& ssh-keygen -t dsa -f /etc/ssh/ssh_host_rsa_key -y \
&& sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config \
&& yum install vim -y \
&& yum install -y openssh-server \
&& sed -i "s/#Port 22/Port 22/g" /etc/ssh/sshd_config \
&& sed -i "s/#ListenAddress0.0.0.0/ListenAddress 0.0.0.0/g" /etc/ssh/sshd_config \
&& sed -i "s/#ListenAddress::/ListenAddress ::/g" /etc/ssh/sshd_config \
&& sed -i "s/#PermitRootLoginyes/PermitRootLogin yes/g" /etc/ssh/sshd_config \
&& sed -i "s/#PasswordAuthenticationyes/PasswordAuthentication yes/g" /etc/ssh/sshd_config \
&& sed -i "s/#PermitEmptyPasswordsno/PermitEmptyPasswords yes/g" /etc/ssh/sshd_config \
&& mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
```
EXPOSE 22
启动sshd服务并且暴露22端口
CMD ["/usr/sbin/sshd", "-D"]
暴露ssh端口22
EXPOSE 22
设定运行镜像时的默认命令:输出ip,并以daemon方式启动sshd
CMD ip addr ls eth0 | awk '{print $2}' | egrep -o '([0-9]+.){3}[0-9]+';/usr/sbin/sshd -D
CMD ["/usr/sbin/sshd", "-D"]
```
构造镜像
docker build -f Dockerfile -t hadoop:v1 .
也可以指定Dockerfile如下:
docker build -t centos:tt - < Dockerfile
Last updated
Was this helpful?