链接:https://hub.docker.com/r/unws/webvirtmgr/

Webvirtmgr Dockerfile

拉起镜像并创建webvirtmgr用户和组(注意uid和guid必须为1010和容器内保持一致)

 docker pull primiano/docker-webvirtmgr
sudo groupadd -g 1010 webvirtmgr
sudo useradd -u 1010 -g webvirtmgr -s /sbin/nologin -d /data/vm webvirtmgr
sudo chown -R webvirtmgr:webvirtmgr /data/vm

运行容器

docker run -d -p 8080:8080 -p 6080:6080 --name webvirtmgr -v /data/vm:/data/vm primiano/docker-webvirtmgr

安装完成后,需要进入容器,执行:

sed -i 's/172.17.42.1/0.0.0.0/g' /webvirtmgr/vrtManager/create.py

修改后才能用noVNC连接。

在被管理的宿主机上做如下配置

libvirtd configuration on the host

1、不存在则手动创建

cat /etc/default/libvirt-bin
start_libvirtd="yes"
libvirtd_opts="-d -l"

2、其中:
listen_addr推荐0.0.0.0,监听所有网卡
unix_sock_group为kvm主机的libvirt/libvirtd组,可用cat /etc/group查看,默认管理用户为root,如宿主机使用非root用户,可以修改unix_sock_group = "对应用户组"

cat /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
listen_addr = "172.17.42.1" ## Address of docker0 veth on the host
unix_sock_group = "libvirtd"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
auth_tcp = "none"
auth_tls = "none"

3、#号代表需要注释的地方

cat /etc/libvirt/qemu.conf
# This is obsolete. Listen addr specified in VM xml.
# vnc_listen = "0.0.0.0"
vnc_tls = 0
# vnc_password = ""

4、重启libvirtd服务

systemctl restart libvirtd

5、

配置webvirtmgr

使用docker命令登录到webvirtmgr容器中,修改admin用户密码,初始密码为:admin/1234

cd /webvirtmgr
python manage.py changepassword admin

6、切换至webvirtmgr用户

su - webvirtmgr -s /bin/bash

7、在webvirtmgr用户下,创建到kvm主机的免登录

ssh-keygen
touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config
chmod 0600 ~/.ssh/config

8、然后copy到kvm主机

ssh-copy-id root@192.168.122.100
登录webvirtmgr

打开浏览器,访问http://192.168.122.100:8080
输入用户密码即可
添加connection时,要保证已经配置容器中webvirtmgr用户到目标机用户的ssh免登录

注意:防火墙需要开放8080和6080,如开放端口后通过novnc连接kvm虚拟机仍提示连接超时,可尝试先关闭防火墙后重启容器再测试下是否可以正常通过novnc连接

由于在防火墙运行状态时,虚拟机xml配置文件中,vnc监听0.0.0.0时会导致novnc连接虚拟机失败,此时将listen监听改为本地即可

以上配置需要在虚拟机关机状态下修改

参考:https://www.jianshu.com/p/8be6b46843e5

https://blog.csdn.net/rariki/article/details/85156633

docker创建Webvirtmgr容器的更多相关文章

  1. Docker 创建 Redis 容器

    Docker 创建 Redis 容器 # 配置文件映射: # -v /root/redis/redis.conf:/etc/redis/redis.conf # 数据目录映射: # -v /root/ ...

  2. 使用Docker创建数据容器

    使用Docker创建数据容器 翻译自: Data-only container madness 1.什么是数据容器? 数据容器就是本身只创建一个volume供其他容器共享,创建完后即退出,不执行任何任 ...

  3. Docker(八)-Docker创建Nginx容器

    获取Nginx镜像 最简单的方法就是通过 docker pull nginx 命令来创建 Nginx容器. $ sudo docker pull nginx 或者: $ sudo docker pul ...

  4. Docker创建Mysql容器并通过命令行连接到容器

    拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker ...

  5. 使用docker创建MySQL容器,并在springboot中使用

    最近在看网上找了个springboot的项目试试,在项目中需要的MySQL版本是5.7,但是本机的MySQL只有5.5.因此想着在我的服务器上跑一个MySQL:5.7的容器解决这一问题,但是在实际操作 ...

  6. 使用docker创建mysql容器

    1.拉取mysql容器   docker pull mysql:5.7

  7. docker创建mysql容器,并挂载数据+配置

    新建:/my/mysql/my.cnf (准备挂载配置文件用) 将以下内容拷贝进去(或者启动一个docker的mysql,并且把/etc/mysql/my.cnf中的内容拷贝出来) # Copyrig ...

  8. Docker 创建 mongo 容器

    获取 docker 认证 mongo 镜像: docker pull mongo 创建运行 mongo 容器: docker run -d -it -p : --name mongo3 -m 512M ...

  9. Docker(九)-Docker创建Selenium容器

    SeleniumHQ官方项目:https://github.com/seleniumHQ/docker-selenium 项目目前快速迭代中. Selenium 这里主要针对的是 Selenium G ...

随机推荐

  1. ztree取消之前选中状态并设置新的选中

    var zTreeObject = $.fn.zTree.getZTreeObj("treeId"); var node = zTreeObject.getNodeByParam( ...

  2. TCP/IP学习笔记12-- IP协议基础

    IP(internet protocol, 网际协议) IP相当于OSI参考模型中的第三层 -- 网络层. --网络层的下一层--数据链路层的主要作用是在 同一种数据链路 的节点之间进行包传递,而一旦 ...

  3. [转帖]armel、armhf和arm64

    armel.armhf和arm64 转帖 1 这些名词是什么的缩写 1.1 armel 是arm eabi little endian的缩写.eabi是软浮点二进制接口,这里的e是embeded,是对 ...

  4. opencv学习笔记D01

    目录 opencv学习笔记D01 一.图片读取 二.图片保存 三.图片展示 四.图片缩放 五.四种常用插值方式的比较 1.最近邻插值 2.双线性插值 3.区域插值 4.三次样条插值 我是尾巴: ope ...

  5. 少儿编程|Scratch编程教程系列合集,总有一款适合你

    如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲 ...

  6. caffe层解读-softmax_loss

    转自https://blog.csdn.net/shuzfan/article/details/51460895. Loss Function softmax_loss的计算包含2步: (1)计算so ...

  7. IdentityServer4:发布环境的数字签名证书

    一,jwt的三个组成部件 先来看一个由IdentityServer颁发的一个标准令牌 eyJhbGciOiJSUzI1NiIsImtpZCI6IjBiNTE3ZjIzYWY0OGM4ZjkyZjExM ...

  8. 浅谈dubbo服务

    Dubbo分布式服 推荐大家一个画图工具:https://www.processon.com/i/572d51efe4b0c3c74981ec14 1.Dubbo是一个分布式服务框架,致力于提供高性能 ...

  9. element-ui 默认排序

    table属性中,设置 :default-sort="{prop:'time', order:'descending'}" 1. prop为排序列,order为排列顺序 2. 多级 ...

  10. FreeRTOS二值信号量

    API函数 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #define xSemaphoreCreateBinary() xQueueGenericCre ...