unix 只有root 可以使用chown吗_Docker使用大汇总

有一些需要从头编译的库,直接利用conda安装会出现cuda编译不通过,因此开始入坑docker。知乎排版太难了,以下只做三个问题的摘录,

  • 深度学习使用Docker
  • docker容器内无法使用Xserver可视化
  • docker容器与pycharm连接

推荐看原文如下,原文持续更新:

Keep Young, Reduce Constraints; Just for Fun!​fenggangliu.top
de0de0f3bfee77fa84648c1c6f8a3205.png

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费),EE 即企业版,强调安全,付费使用。Docker CE 分为 stable, test, 和 nightly 三个更新频道。每六个月发布一个 stable 版本 (18.09, 19.03, 19.09…)。源自知乎

深度学习使用Docker

升级到Docker19.03+

docker升级到19.03以后,nvidia将提供原生的显卡支持,只需要安装nvidia-container-toolkit工具包即可,不再像使用nvidia-docker/2那样复杂配置. 源自网页

  • Docker19.03安装可见: https://docs.docker.com/engine/install/ubuntu/
    直接去网址下载 containerd.io, docker-ce-cli, docker-ce19.03, 依次dpkg安装
  • 然后按照https://github.com/NVIDIA/nvidia-docker 安装nvidia-container-toolkit, 简简单单如下:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

运行

docker pull pytorch/pytorch:1.2-cuda10.0-cudnn7-devel
docker run --gpus all -v /home/liufg/folder:/workspace pytorch/pytorch:1.2-cuda10.0-cudnn7-devel

镜像查询网址

  • 阿里云: https://cr.console.aliyun.com/cn-hangzhou/instances/images
  • docker hub: https://hub.docker.com/
  • 直接docker search
  • 阿里云上使用 Nvidia NGC https://docs.nvidia.com/ngc.cn/ngc-alibaba-setup-guide-cn/a1-0.html#a1-0

docker容器内无法使用Xserver

即cv2.imshow(), matplotlib都无法可视化, 解决方案可见:https://blog.csdn.net/BigData_Mining/article/details/103559929. 以下做摘录, 总的来说就是显示到本地显示器.

  • 首先,在主系统里运行以下,就是你host主机。
apt-get install x11-xserver-utils
xhost +

xhost +的作用是开放权限,允许所有用户,当然包括docker,访问X11 的显示接口
如果xhost +不能执行,报错:xhost : unable to open display “”
可以输入命令export DISPLAY=:0执行一下

  • 在启动docker容器时,添加选项如下:
-v /tmp/.X11-unix:/tmp/.X11-unix            #共享本地unix端口
-e DISPLAY=unix$DISPLAY                     #修改环境变量DISPLAY
-e GDK_SCALE                                #我觉得这两个是与显示效果相关的环境变量,没有细究
-e GDK_DPI_SCALE 

最终的启动命令就会长类似这样

docker run -it 
  -- gpus all
  -v /your-work:/workspace 
  -v /tmp/.X11-unix:/tmp/.X11-unix 
  -e DISPLAY=unix$DISPLAY 
  -e GDK_SCALE 
  -e GDK_DPI_SCALE 
  --name 名称 
  镜像名称


这样启动后的容器,运行有图形界面的程序就可以自由显示,和在本地显示一样了。

  • 每次重新开机,需要在本机操作一次xhost +, 以打开权限。

docker容器与pycharm连接

pycharm连接docker容器, 用来调试代码. 以下记录容器已经建好, 然后pycharm连接.

其实也可以pycharm连接镜像, 新建一个容器,然后在此容器中安装自己的库.

远程连接和本地连接相同, 都是通过ssh.

docker容器开启ssh端口

参考: https://blog.csdn.net/weixin_41666001/article/details/101430353

  • 容器开启时应设定端口映射, 比如:docker run -it -p 8010:22 <image>

将容器22端口映射到host主机的8010, 注意这里22号端口是ssh的默认端口, 8010可以随意指定host的空闲端口. (若有误请指正)

  • 容器中安装ssh (apt国内镜像加速要做好
apt-get install openssh-server
  • 设置root密码
passwd root
  • 修改配置文件
vim /etc/ssh/sshd_config

修改内容如下:

# PermitRootLogin prohibit-password # 默认打开 禁止root用户使用密码登陆,需要将其注释
RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
PermitRootLogin yes #允许root用户使用ssh登录
  • 重启ssh
service ssh restart
# 或者
/etc/init.d/ssh restart

docker port或者docker ps -a 命令可以让我们快捷地查看端口的绑定情况

pycharm添加远程编译器

直接添加SSH环境.

  • 本机地址是127.0.0.1, 端口号填之前的8010
  • python解释器地址:/opt/conda/bin/python3.6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值