1. ubuntu系统
#安装ssh server 和 client
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y openssh-server openssh-client
#此步骤主要目的是修改sshd_config配置文件,把配置文件中的”PermitRootLogin without-password”加一个”#”号,把它注释掉,再增加一句”PermitRootLogin yes”,参考:https://www.jianshu.com/p/adda91b7c1d2
RUN mv /etc/ssh/sshd_config /etc/ssh/sshd_config_bak && cp /opt/sshd_config /etc/ssh/
## 设置root密码为123
RUN echo root:123 | chpasswd
RUN echo "export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /root/.bashrc
RUN echo "export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64" >> /root/.bashrc
## ssh port 22
EXPOSE 22
## ssh start cmd
CMD service ssh restart -D
2、centos系统
FROM nvidia/cuda:9.0-cudnn7-devel-centos7
LABEL maintainer "xxx"
RUN mv /etc/yum.repos.d/cuda.repo /etc/yum.repos.d/cuda.repo.bak && \
yum install -y vim openssh-server openssh-clients && \
rm -rf /var/cache/yum/*
COPY sshd_config /etc/ssh
#COPY ssh_host_rsa_key /etc/ssh
RUN echo \n\n | ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
## 设置root密码
RUN echo root:123 | chpasswd
RUN echo "export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /root/.bashrc
RUN echo "export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64" >> /root/.bashrc
## ssh port 22
EXPOSE 22
## ssh start cmd
CMD /usr/sbin/sshd -D
3、镜像制作好后在机器上启动容器
以GPU机器为例子,分配10核cpu,30G内存,启动命令如下:
NV_GPU=0 nvidia-docker run --name ajk-caffe-offline-GPU -itd --cpu-period 100000 --cpu-quota 1000000 --memory 30G --shm-size 2G -p 50011:22 -p 50012:50012 -p 50013:50013 -p 50014:50014 -v /opt/users/xxx/:/home/work/ 镜像名
4、其他机器远程 ssh 登录
ssh -p 50011 root@xxx.xxx.x.xxx