网站图片大小,建设申请网站首页,网站建设 长沙,建工教育培训机构镜像构建 官方最后一次更新已经是 2015年6月22日 了#xff0c;官方也没有 docker 镜像#xff0c;这边选择咱们自己构建如果你的服务器有魔法#xff0c;可以直接 git clone 一下 webvirtmgr 的包#xff0c;没有的话#xff0c;可以和我一样#xff0c;提前从 github 上…镜像构建 官方最后一次更新已经是 2015年6月22日 了官方也没有 docker 镜像这边选择咱们自己构建如果你的服务器有魔法可以直接 git clone 一下 webvirtmgr 的包没有的话可以和我一样提前从 github 上下载下来上传到机器上然后 ADD 到容器里面这个项目已经很悠久了只能用 2.x 的 python这里就直接用 centos 作为基础镜像对比过 debian 和 python 镜像构建完都要1G多用 centos 构建完只有 560MB官方地址【先把包下载下来】Release WebVirtMgr · retspen/webvirtmgr · GitHub FROM docker.m.daocloud.io/centos:7.6.1810ADD start.sh /start.sh
ADD webvirtmgr-4.8.9.tar.gz /WORKDIR /webvirtmgr-4.8.9# yum 相关的依赖
RUN rm -f /etc/yum.repos.d/*.repo \curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo \yum install -y epel* \yum install -y python-pip libvirt-python libxml2-python python-websockify gcc python-devel \yum clean all# python 相关的依赖
RUN pip install numpy1.16.3 -i https://mirrors.aliyun.com/pypi/simple/ \pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ \echo no | python manage.py syncdb \echo yes | python manage.py collectstatic# webvirtmgr 通过 tcp 连接 kvm 相关的依赖
RUN yum install -y cyrus-sasl cyrus-sasl-scram cyrus-sasl-devel cyrus-sasl-md5 \yum clean allCMD [/usr/bin/bash,/start.sh]这里是 ADD 里面的启动脚本 start.sh本地记得 chmod x start.sh 加个执行权限 echo from django.contrib.auth.models import User; User.objects.create_superuser(admin, adminlocalhost, 1qazWSX) | /usr/bin/python /webvirtmgr-4.8.9/manage.py shell
/usr/bin/python /webvirtmgr-4.8.9/manage.py run_gunicorn --bind 0.0.0.0:8000 --log-file /webvirtmgr-4.8.9/webvirtmgr.log --daemon
if [ $? -eq 0 ];thennohup /usr/bin/python /webvirtmgr-4.8.9/console/webvirtmgr-console /dev/null sleep 3tail -f /webvirtmgr-4.8.9/webvirtmgr.log
fi构建镜像 docker build -t webvirtmgr:4.8.9-centos-7.6 .启动 webvirtmgr 启动参数仅供参考里面有些配置是我本地环境相关的 如果 kvm 和 webvirtmgr 是相同机器可以把 /var/run/libvirt/libvirt-sock 文件带入到容器内就可以实现 local socket 的方式连接 kvm 宿主机了 docker run -d \
--restartalways \
--network host \
--memory 1024m \
--name webvirtmgr \
-v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \
webvirtmgr:4.8.9-centos-7.6创建其他 superuser 进入 webvirtmgr 容器 docker exec -it webvirtmgr bash创建其他超级用户 python manage.py createsuperuser浏览器访问 IP:8000 看看能不能访问到 webvirtmgr 的页面 默认的用户名是 admin密码是 1qazWSX在启动脚本里面可以找到 修改密码python manage.py changepassword admin 配置 nginx 反向代理和域名访问 这一步不是必须的有需求就做这里也是用的 docker 容器的方式运行的下面是需要打包到容器内的配置文件 user nginx;
worker_processes auto;error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for;# access_log /var/log/nginx/access.log main;# sendfile on;# tcp_nopush on;keepalive_timeout 65;gzip on;server {listen 80;# 这里的域名修改成自己的server_name virtmgr.icu;# access_log /var/log/nginx/webvirtmgr_access_log;location / {proxy_pass http://192.168.18.222:8000;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;proxy_set_header Host $host:$server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_connect_timeout 600;proxy_read_timeout 600;proxy_send_timeout 600;# 这里的配置也可以再放大一点这个会影响 iso 镜像的上传## 如果直接放到指定的 iso 目录下那就不受影响client_max_body_size 5120M;}location /static {proxy_pass http://192.168.18.222:8000/static;}}
}下面是 Dockerfile FROM docker.m.daocloud.io/nginx:1.26.0
ADD ./nginx.conf /etc/nginx/nginx.conf构建镜像 docker build -t webvirtmgr-static:4.8.9-nginx-1.26.0 .启动镜像 docker run -d --rm \
-p 80:80 \
--memory 200m \
--name webvirtmgr-static \
webvirtmgr-static:4.8.9-nginx-1.26.0使用域名访问域名没有 dns 解析的可以本地自己配置一下 hosts 纳管KVM 宿主机采用ssh方式 进入 webvirtmgr 容器 docker exec -it webvirtmgr bash
cd ~ssh-keygen
一直选择y
ssh-copy-id -i ~/.ssh/id_rsa.pub root192.168.100.234
测试免密是否生效
ssh root192.168.100.234
免密没问题就可以在界面加入要管理的KVM宿主机了