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裏打開容器了!在這裏插入圖片描述

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