Vscode-Docker

Author Avatar
cooscao 7月 13, 2019

使用vscode连接远程docker

之前写代码一般简单的话都在jupyter或者vim上写,复杂的话就在本地写好之后再传到服务器上,但由于本地和服务器环境不同,往往需要下载很多包,才能更好完成代码编写,终于找到一个方法能实时编写服务器上容器上的代码,记录一下。

docker配置

  1. 首先重新运行一个容器,这个容器在之前的基础上新加上一个对服务器主机22端口的映射,因为ssh到服务器端口一般是22.

    $ sudo docker run -p 7964:8888 -p 7965:5000 -p 7966:6000 -p 8022:22 -it -v /home/caoshuai/:/root/workspace --runtime=nvidia --name="caoshuai" f722eab170b7 /bin/bash
    
  2. 进入容器之后在容器内安装openssh-server

    $ apt-get update
    $ apt-get install -y openssh-server
    
  3. 建立一个文件,并对ssh做相关的配置

    $ mkdir /var/run/sshd
    $ echo 'root:[passwd]' | chpasswd
    # 这里使用你自己想设置的用户名和密码,但是一定要记住!
    $ sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    $ sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
    $ echo "export VISIBLE=now" >> /etc/profile
    
  4. 重启ssh激活配置

    $ service ssh restart
    
  5. 在服务器主机上测试刚才新建容器哪个端口映射到服务器上22号端口,并测试能否ssh到docker容器内

    $ sudo docker port [your_container_name] 22
    # 如果前面的配置生效了,你会看到如下输出
    # 0.0.0.0:8022
    
    $ ssh root@[your_host_ip] -p 8022
    # 密码是你前面自己设置的
    

    到这里docker 环境就配置完成,接下来vscode配置就简单了。

Vscode配置

  1. 安装Remote SSH插件(或Remote Devolopment三件套)

  2. 安装完成之后只需要ctrl+shift+p选择ssh-setting并配置相应ssh host即可

    HostName: [ip地址]
    User: [用户名(docker就是root)]
    Port: [端口号8022]
    
  3. 接下来就选择连接到Remote Host并输入之前设置的密码就可以愉快地使用Vscode远程开发啦!

参考

PyCharm + Docker:打造最舒适的深度学习炼丹炉