欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[deep learning] 03_Docker+Pycharm深度学习环境

程序员文章站 2022-07-11 15:35:59
...


0. 补充说明

1. 在ubuntu18.04上进行
2. 在装了显卡驱动后,已经默认装好了cuda

1. 装Docker

docker安装

2. 装nvidia-docker

nvidia-docker

3. 在docker上pull下来deepo

3.1 启动容器

docker run --gpus all -it -p 22:22  -v /host/data:/data -v /host/config:/config ufoym/deepo bash  //将本地22端口映射到dcoker容器中的22端口

启动后,进入了容器的命令行:

3.2 配置容器ssh连接

在容器中:

sudo apt-get update
sudo apt-get upgrade
apt-get install openssh-server

配置sshd  修改sshd的默认配置,编辑文件/etc/ssh/sshd_config,修改文件中的以下三行:

PermitRootLogin yes # 可以登录 root 用户
PubkeyAuthentication yes # 可以使用 ssh 公钥许可
AuthorizedKeysFile  .ssh/authorized_keys # 公钥信息保存到该文件中

重启sshd /etc/init.d/ssh restart使得这些配置生效。

  • 在容器中mkdir ~/.ssh
  • touch ~/.ssh/authorized_keys

在新的终端上:
新开一个终端窗口,ssh-****** -t rsa -C “aaa@qq.com”(替换为你自己的邮箱),会在本地/.ssh目录下生成三个文件id_rsa、id_rsa.pub、known_hosts。复制id_rsa.pub文件中的内容。将复制的内容粘贴到容器/.ssh/authorized_keys文件中。

3.3 提交修改到镜像

以上对容器的修改并不会改变镜像文件,需要提交修改生成一个新的镜像。
在新终端:
docker ps 查看正在使用deepo容器,记录下该容器的CONTAINER ID,例如8b5a86d18e58。

在容器运行着的终端:
exit; 退出来
docker commit -m 'add ssh' -a 'your-name' 8b5a86d18e58 deepo-ssh这样会将刚刚在deepo容器中配置的ssh服务保存,并生成新的deepo-ssh镜像。在后续使用docker images命令可以查看到新的镜像已经被保存。

运行最终的容器

docker run -dit -p 22:22 -v ~/data:/data -v ~/config:/config deepo-ssh /usr/sbin/sshd -D    # 此时已经到后台运行了
docker ps   # 查看运行中的容器
  • -d | 后台运行
  • -p 12622:22 | 绑定当前22端口到deepo-ssh容器的22端口(ssh服务默认为22端口)
  • -v ~/data:/data | 将~/data目录挂载到容器/data目录
  • /usr/sbin/sshd -D | 容器运行的命令和参数,开启ssh服务

[deep learning] 03_Docker+Pycharm深度学习环境


参考

  1. deepo : 一系列深度学习的docker学习镜像
  2. nvidia-docker
  3. docker安装
  4. Docker+PyCharm快速搭建机器学习开发环境 form 知乎
  5. PyCharm+Docker:打造最舒适的深度学习炼丹炉