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

文章目录

  • 0. 补充说明
  • 1. 装Docker
  • 2. 装nvidia-docker
  • 3. 在docker上pull下来deepo
    • 3.1 启动容器
    • 3.2 配置容器ssh连接
    • 3.3 提交修改到镜像
  • 参考


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-keygen -t rsa -C “[email protected]”(替换为你自己的邮箱),会在本地/.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张图片


参考

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

你可能感兴趣的:(深度学习,深度学习)