Ubuntu 16.04下 创建带pytorch+opencv的容器,并安装配置vncserver实现容器可视化

写在前面

为了复现一个pytorch的代码,花了一天时间配置容器,就是为了省事,直接在网上找了一个pytorch-opencv的镜像,从镜像创建容器,然后配置容器的可视化界面vncserver,期间出现了各种问题,记录下来解决方案。

pytorch-opencv的镜像

在github上找到大神配置好的镜像,这里直接贴出来: 命令行pull pytorch镜像,或者修改dockerfile然后创建pytorch镜像.

#sudo docker pull rwightman/pytorch-opencv

pull下来镜像后,可以查看现有的镜像有哪些

# sudo docker images 

可以看到镜像已经pull到本地了
在这里插入图片描述
基于镜像新建容器并启动

# sudo docker run -it rwightman/pytorch-opencv:latest /bin/bash

启动后用查看容器是否创建好

# sudo docker ps -a

注意如果用sudo docker ps命令只能查到当前正在运行的容器,加** - a **可以查看所有容器
在这里插入图片描述
根据CONTAINER ID,就可以启动容器

# sudo docker start CONTAINER ID
# sudo docker attach CONTAINER ID

启动后,显示如下

# root@CONTAINER ID:

接下来就是在容器内配置可视化图形界面

vncserver安装与配置

  1. 更新源及系统:apt update -y
# root@CONTAINER ID: apt update -y

由于现在的容器环境非常干净,也就是什么都没有,直接运行update会一直显示working, 你以为是因为要更新的东西太多,等了好几个小时依然还是working的话,首先判断是否是源列表的问题,修改源列表,我直接下载的中科大的源,替换了本地/ect/apt/sources.list 文件内容(建议先备份),运行update 依然显示0%[working],继续排查,可能是docekr环境太纯净,缺乏必要的包apt-transport-https,由于目前没有安装命令,只能从主机上下载了.deb文件,然后拷贝到容器里

#sudo docker cp apt-transport-https_1.2.32_amd64.deb 1482e1bcf386:/workspace

然后安装apt-transport-https

#dpkg -i apt-transport-https_1.2.32_amd64.deb

在这里插入图片描述
安装成功后再update,这次直接报错

root@1482e1bcf386:/workspace# apt update -y
Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

这是因为刚才运行了update的,强制退出了但是后台进程还在,运行ps -e | grep apt查看一下

root@1482e1bcf386:/workspace# ps -e | grep apt
   43 pts/0    00:00:00 apt

删掉/var/lib/apt/lists/lock文件即可

root@1482e1bcf386:/workspace# rm /var/lib/apt/lists/lock

接下来运行update就没有再出问题了。

  1. 安装桌面环境
# apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y
  1. 安装 vncserver
# apt install vnc4server -y
  1. 配置 vncserver
# vim ~/.vnc/xstartup

在文件最下面加上

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &

按一下键盘上的i就进入了插入模式,粘贴完毕后,按 Esc 退出插入模式,然后输入’:wq!’+Enter键即可保存退出,整体文件内容如下图所示在这里插入图片描述5. 启动vncserver,并设置图形界面的大小

vncserver -geometry 1600x1080

在这里插入图片描述
然后就可以在主机上的vncserver里打开容器了!在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章