记一次离谱的安装经历
在centos中的docker里装centos7,并在里面安装好vnc和kvm,在kvm里面安装win10,win10里安装向日葵,实现不间断的跑深度学习
前提条件
1. 根目录中剩余空间一定要大,至少要有100g的空间
2. 需要cpu支持虚拟化技术
3. 假定你已经了解常用的linux命令,vim操作,并且知道docker是什么玩意,如果不能满足这个条件,这个教程并不太适合你
-
安装docker
略,这个太简单了 -
找到一个完整的centos镜像
这里我踩坑了不少次,docker中默认镜像全是精简版的,一定要找到一个较为完整的镜像来用,不然装依赖装到怀疑人生,这里我用的是我学长之前用的centos7镜像,你们可以去搜一搜,应该也不难找 -
创建容器
这里讲究也多
docker run -d --privileged --name kvm -p 5902:5901 --cpuset-cpus 0-7 centos7_kvm /usr/sbin/init
我用的是这个命令
–privileged 使用特权模式,必加,不然会告诉你什么DBus有问题
–name 容器名
-p 端口映射,这里是为了后续装vnc预留的端口, 5901是docker中机器的vnc端口,5902是映射出来的宿主机端口
–cpu-set 这个命令我好像没用上,加上也没问题,就加上吧
/usr/sbin/init 要启动这个,不然也会出问题容器创建好以后,使用
docker exec -it kvm bash
这里的kvm换成你容器名,进入容器命令行 -
安装vnc
yum install tigervnc tigervnc-server -yvncpasswd # 设置vnc密码
vncserver :1 #启动
vncserver -kill :1 #关闭
#看一下防火墙端口开了没
然后下载vnc viewer
然后ip:port
port就是你刚刚映射的宿主机端口这里弄完,连接vnc的时候会白屏,把容器重启(docker start/stop)一下,
然后进容器重新设置一下vnc密码(每次重启容器的时候都要重置一下vnc的密码,不知道什么毛病)
就能用了接下来就能用图形界面愉快的安装kvm了
下面是可选项
vncserver -geometry 1920x1080 :1 #为vnc设置分辨率大小
ps -ef | grep -i vnc #查看vnc进程
netsrat -lt | grep vnc #查看vnc端口
如果出现unencrypted connection错误
vim ~/.vnc/xstartup
在最下面添加如下内容
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
然后重新打开vnc就行了
(可选)保存镜像
这里需要保存一下镜像,因为一旦虚拟机创建完成后,镜像会变得特别的大,所以在这里提前备份一下
docker commit 容器名 镜像名
-
安装kvm
yum -y install kvm libvirt virt-managersudo virt-manager 启动虚拟机,这里还会有点问题,不过都挺好解决的
用docker cp命令将iso镜像拷贝到容器中
一步步安装就行
在创建虚拟机的时候可能会出现cpu-sets啥啥的错误,不用管,点ok,然后继续就行
-
一些奇怪的报错
Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
sudo /etc/init.d/dbus start # 没启动
unable to connect to libvirt
sudo virt-manager
不要和conda装在一个环境中,dbus会冲突,目前没查到有好的解决办法