两个方法,一个是commit大法,容易实现,洁癖患者不喜欢.另一个是Dockerfile,洁癖患者没压力.
先做一个SSH Key.
ssh-keygen -t rsa #按回车选择默认的没有密码。此时,会在生成一个文件~/.ssh/id_rsa.pub cat ~/.ssh/id_rsa.pub >authorized_keys
然后创建Dockerfile.
FROM debian:stretch #安装SSH服务 RUN apt-get update && apt-get install -y openssh-server && mkdir -p /var/run/sshd && mkdir -p /root/.ssh && echo "root:xxoo" | chpasswd && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config #添加认证文件和启动脚本 ADD authorized_keys /root/.ssh/authorized_keys RUN echo "#!/bin/bash" > /root/run.sh && echo "/usr/sbin/sshd -D" >> /root/run.sh && chmod u+x /root/run.sh #导出端口 EXPOSE 22 CMD ["/root/run.sh"]
突然多了好多语法有木有,简单说下.
CMD就是容器启动时候执行的操作.
ADD就是更高级的文件添加操作,比COPY要骚.
EXPOSE是暴露端口,默认什么端口都没出来.
好的,那么开始生成Image吧.
docker build -t deiban:v9_ssh1 .
用daemon方式启动,用P参数表示端口要映射出来.
docker run -ditP deiban:v9_ssh1
发现他用32782映射了里面的22端口.可以打开,也可以进来了.
是不是好像一个NAT VPS一样,分享给大家用呢.其实,每个Docker还有他们自己的内网IP,下节再想办法弄明白了.更多端口,可以指定,也可以不指定...最好还是通过图形界面,超好配置的.
之前我印象中,有一个叫层次的信息,好像说Docker有个最高容忍层次.这次总算被我在图形界面看到...
所以呢,命令还是合并合并下.
还有感慨下日渐消瘦的磁盘空间...
还有为什么要用国外服务器呢,因为很多文件国内下不来,耽误效率.