配置Docker容器ssh服务端实现远程ssh登录

绝地灬酷狼 2023-07-06 14:44 80阅读 0赞
  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

  1. 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
  2. RUN echo "export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64" >> /root/.bashrc
  3. ## ssh port 22
  4. EXPOSE 22
  5. ## ssh start cmd
  6. CMD service ssh restart -D

2、centos系统

  1. FROM nvidia/cuda:9.0-cudnn7-devel-centos7
  2. LABEL maintainer "xxx"
  3. RUN mv /etc/yum.repos.d/cuda.repo /etc/yum.repos.d/cuda.repo.bak && \
  4. yum install -y vim openssh-server openssh-clients && \
  5. rm -rf /var/cache/yum/*
  6. COPY sshd_config /etc/ssh
  7. #COPY ssh_host_rsa_key /etc/ssh
  8. RUN echo \n\n | ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
  9. ## 设置root密码
  10. RUN echo root:123 | chpasswd
  11. 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
  12. RUN echo "export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64" >> /root/.bashrc
  13. ## ssh port 22
  14. EXPOSE 22
  15. ## ssh start cmd
  16. CMD /usr/sbin/sshd -D

3、镜像制作好后在机器上启动容器

以GPU机器为例子,分配10核cpu,30G内存,启动命令如下:

  1. 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

发表评论

表情:
评论列表 (有 0 条评论,80人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SSH远程登录

    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较