docker创建Webvirtmgr容器

链接: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 [email protected]
登录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

原文地址:https://www.cnblogs.com/caidingyu/p/10868917.html

时间: 2024-10-10 21:05:47

docker创建Webvirtmgr容器的相关文章

Docker创建MySQL容器

原文链接:Docker创建MySQL容器 本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下 FROM centos:centos6 MAINTAINER Fanbin Kong "[email protected]" RUN yum install -y mysql-server mysql RUN /etc/init.d/mysqld start &

物理机centos6上使用docker创建centos7容器并在容器中使用KVM搭建win10系统

环境都通过前面几篇随笔摸索中搭建好了,以下就是简单的将docker创建centos7容器并配置好win10系统的过程记录一下.  1.创建win10容器 docker run -d --name win10 -p 5900:5900 -p 5901:5901 -p 5902:5902 -p 5903:5903 -p 5904:5904 -p 5905:5905 -v /data/zkdocker/vm:/data/zkdocker/vm --privileged=true centos:7 /u

Docker创建redis容器

1.拉取redis镜像: docker pull redis 2.创建容器: docker run -d --restart=always -v /data:/data --name myredis -p 36379:6379 redis --requirepass "123456" -d 后台进行 --retsart=always 自动重启 -v /data:/data 宿主机/data目录挂载到容器/data目录 --name 容器名设置为myredis -p 映射端口号 --re

docker创建centos容器之后ssh登录失败

创建运行centos容器之后,立刻使用ssh客户端工具登录,输入密码root,或者直接回车,发现登录被拒绝: 解决办法: 在容器中使用passwd命令设置好密码,再用客户端工具登录. 原文地址:https://www.cnblogs.com/144823836yj/p/12502806.html

docker 创建mysql容器并且绑定到本地navicat

docker pull mysql docker run --name mysql -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root1234 mysql docker exec -it mysql /bin/bash mysql -uroot -p 注意:远程绑定navicat需要授权,别忘记刷新 ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root1234';FLUSH

解决docker创建的elasticsearch-head容器不能连接elasticsearch等问题

在使用docker创建elasticsearch-head容器去连接elasticsearch的时候,容易出两个问题 1.不能连接elasticsearch 修改elasticsearch.yml文件 添加如下两个配置 http.cors.enabled: truehttp.cors.allow-origin: "*" 2.连接上了elasticsearch,但是使用其他的操作发现浏览器会报406 这是因为在elasticsearch-head容器中返回的数据格式不对 进入容器 doc

Docker网络和容器的通信

Docker的本地网络实现其实就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair). 基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包:此外,如果不同子网之间要进行通信,需要额外的路由机制. Docker中的网络接口默认都是虚拟的接口.虚拟接口的最大优势就是转发效率极高.这是因为Linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发,即发送接口的发送缓存中的数据包将被直接复制到接收接口的接收缓存中,而

docker 安装tomcat容器和mysql容器

1. docker pull mysql:5.6 2.docker run -p 3306:3306 --name mysql -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678 -d mysql:5.6 解释: 需要说明的是宿主机中的/data/mysql/conf或data或logs可

基于docker创建ansible以及管理容器节点

基于docker创建ansible以及管理容器节点 场景:在学习条件有限情况下,如果通过一台VM来完成docker和ansible的学习 解决:先创建自定义镜像-->构建多个ansible容器. 当然此法适用于其他类似场景. VM环境: OS:centos7 Docker version 1.12.3, build 6b644ec docker-compose version 1.8.1, build 878cff1 关键点: Dockerfile 编写优化 Docker-compose.yml