分享好友 最新资讯首页 最新资讯分类 切换频道
虚拟化技术与应用(KVM、Docker、DevOps)
2024-12-28 18:00

1、KVM环境配置安装

2、KVM可视化管理工具

3、远程连接(VNC

4、网络虚拟化技术(KVM虚拟机网络配置

5、虚拟机快照

6、虚拟机迁移

前提:此处的 KVM 虚拟机迁移,是指在 KVM 所属虚拟机之间迁移 KVM,而非是在 KVM 内部迁移由 KVM 所创建的虚拟机

一、准备目标虚拟机(要迁移到的虚拟机
  1. 使用 VMware 创建一台虚拟机(不是在 KVM 内创建虚拟机
  2. 配置 KVM 环境:参考 “《1. KVM 安装、配置及虚拟机创建》” 中的 “一.1 ~ 一.9”
  3. 新建虚拟机存储盘目录:mkdir /opt/images
  4. 保持目标虚拟机开机状态

1、部署OpenStack

2、制作镜像

3、OpenStack存储

4、OpenStack网络模式

5、虚拟机迁移

0、Docker常用命令

(1)、基础命令
  1. 查看版本信息docker version
  2. 查看系统信息docker info
  3. 查看帮助命令docker --help
  4. 卸载 Docker
    1. 卸载依赖yum remove docker-ce docker-ce-cli containerd.io
    2. 删除资源rm -rf /var/lib/docker
  5. 重启 Dockersystemctl restart docker

(2)、镜像命令
  1. 查询本地已有镜像docker images [参数]
    1. -q:显示ID。如:docker images -q
    2. -a:显示所有,与 docker images 效果相同。如:docker images -a
  2. 查询商店中相关软件docker search
    1. :docker search mysql
  3. 下载镜像docker pull [镜像名:版本号]
    1. 版本号可不加,不加的情况下默认下载最新版本
      1. docker pull centos
      2. docker pull tomcat:9.0
  4. 删除镜像
    1. 删除多个镜像docker rmi -f [镜像 ID 1] [镜像 ID 2] ...。如:docker rmi -f 127.0.0.1:5000/registry:latest
    2. 删除全部镜像docker rmi -f $(docker images -qa)
  5. 给 Docker 镜像打标签docker tag [镜像的原名称][:镜像版本] [镜像的新名称][:镜像版本]。如:docker tag ubuntu:latest myubuntu:v1.0
    1. :[:镜像的版本标签] 为可选项,不写时默认为 latest
    2. 标记本地镜像,将其归入某一仓库:docker tag [镜像名 / 镜像 ID] [主机名 / IP 地址]:[端口]/[镜像名]。如:将 ID 为 0030ba3d620c 的镜像标记为 0030ba3d620c 127.0.0.1:5000/registry:latest:docker tag 0030ba3d620c 127.0.0.1:5000/registry:latest
  6. 将本地的 Docker 镜像上传到 Docker 仓库docker push [镜像标签]。如:docker push 127.0.0.1:5000/registry:latest
  7. 使用 Dockerfile 创建镜像(不要漏掉最后的 “.”docker build [参数] [镜像名称][:镜像版本] .
    1. -f:指定要使用的 Dockerfile 路径。如:docker build -f /opt/nginx/Dockerfile .
    2. -t:指定镜像的名称和标签。如:docker build -t "genshin/nginx:v1" .

(3)、容器命令

PS:有了镜像才能创建容器

  1. 新建容器并启动:docker run [可选参数] [镜像名]
    1. --name=Name:容器名字
    2. --privileged=true:以 root 账户方式运行容器
    3. --restart:当容器停止运行后的处理逻辑
      1. always:容器在停止后总是重启。如:--restart=always
      2. on-failure:容器在停止后只有在前一次运行失败时才重启
      3. no:容器在停止后不重启
    4. -d:以后台方式运行
      1. 使用后台启动,就必须有一个前台进程,Docker 发现没有应用,就会自动停止。解决方法:使用 docker run -d -it centos /bin/bash 命令启动
    5. -e:设置环境的值。如:-e MYSQL_ROOT_PASSWORD=guojinchao:设置 MySQL 的 root 用户密码
    6. -i:以交互模式运行容器,通常与 -t 同时使用
    7. -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
    8. -p(小写: 指定容器的端口
      1. -p 主机端口:容器端口
        1. 主机端口:外部访问端口,会与服务器中其他程序的端口冲突。如访问 Tomcat 的默认页面的端口
        2. 容器端口:启动的容器在 Docker 中运行的端口号,不会与服务器中其他程序的端口冲突,仅会与 Docker 中其他容器的端口冲突
      2. -p 容器端口
    9. -P(大写:随机指定端口
    10. -v [宿主机数据卷目录]:[Docker 容器内对应目录]:挂载数据卷,方便部署,让数据持久化
      1. 运行 centos 操作系统镜像:docker run -it centos /bin/bash
      2. docker run --name=myTomcat -d -p 8080:8080 tomcat:9.0
      3. docker run -di --name=myTomcat -p 8080:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:9.0
      4. 启动 Registry 容器: docker run -d -p 5000:5000 --restart=always --name registry -v /data/docker-registry:/var/lib/registry registry:latest
    11. 如果在安装时指定了版本,在此处也必须指定版本,不然会重新下载最新版本
  2. 列出所有正在运行的容器docker ps -a
    1. 无参数:查看正在运行的容器
    2. -a:查看曾经运行过的容器。注:如果遇到之前启动的容器忽然消失,重新新建容器提示名称已存在,启动容器提示无此名称,则可以用此参数进行查看
    3. -n=?:显示最近创建的容器
    4. -q:只显示容器的编号
  3. 进入当前正在运行的容器
    1. 进入容器并开启一个新终端docker exec -it [容器 ID / 容器名称] /bin/bash。如
      docker exec -it myTomcat /bin/bash​
    2. 进入容器正在执行的终端:docker attach [容器 ID / 容器名称]
  4. 退出容器
    1. exit:容器停止并退出
    2. Ctrl + p + q:容器不停止退出(有时需要等一会
  5. 删除容器
    1. 删除指定的容器,容器正在运行则不能删除docker rm [可选参数] [容器 ID / 容器名称]
      1. -f:强制删除(可删除运行中的容器)。如:docker rm -f  ubuntu2
      2. -v:删除容器中的数据卷
    2. 删除所有容器docker ps -a -q|xargs docker rm
      1. docker ps -a -q:列出所有容器的 ID
      2. xargs:会将上述容器的 ID 作为参数传递给 `docker rm` 命令
  6. 启动和停止容器的操作
    1. 启动容器docker start [容器 ID / 容器名称]。如
      ​docker start myTomcat
    2. 重启容器docker restart [容器 ID / 容器名称]。如
      ​docker restart myTomcat
    3. 停掉容器docker stop [容器 ID / 容器名称]。如
      docker stop myTomcat​
    4. 杀掉容器docker kill 容器ID
  7. 查看日志:docker logs -tf --tail 10 [容器 ID / 容器名称]
    1. -tf:显示全部
    2. --tail number:显示指定条数
  8. 查看容器中进程信息docker top [容器 ID / 容器名称]。如:docker top myTomcat
  9. 查看容器的配置信息docker inspect [容器 ID / 容器名称]。如:docker inspect ubuntu1
    1. 查看容器的网络信息docker inspect -f {{.NetworkSettings}} [容器 ID / 容器名称]。如:docker inspect -f {{.NetworkSettings}} ubuntu1
  10. 容器与主机间文件的互相复制
    1. 从容器内复制到主机docker cp [容器 ID / 容器名称]:[容器内路径] [主机路径]。如:​docker cp mysql:/etc/mysql/my.cnf /etc/
    2. 从主机复制到容器内docker cp [主机路径] [容器 ID / 容器名称]:[容器内路径]。如:​docker cp /etc/my.cnf mysql:/etc/mysql/
  11. 将容器内容导出为一个 tar 文件至服务器当前目录docker export [容器 ID / 容器名称] > [文件完整目录.tar]。如:docker export b786ab1aed8c > /opt/ubuntu:v1.tar
  12. 重命名容器docker rename [原容器 ID / 容器名称] [新容器名称]。如:docker rename ubuntu1 ubuntu2
  13. 查看容器的文件变更docker diff [容器 ID / 容器名称]。如:docker diff ubuntu2
(4) 、在容器中修改文件

1、Docker的安装

二、常见错误
问题:执行 Docker 命令时,报错 “docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (3f2bbdbc27f3535c35b1f74b12b7e026dd3eb19d25aab213295b455bdc4fc37c):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name.
​ (exit status 1)).”
问题原因:可能是在 Docker 运行期间修改了 IP 配置导致的
解决方法:重启 Docker:systemctl restart docker

2、Docker镜像使用

3、Docker容器使用

4、Docker管理平台

5、Docker上安装Tomcat容器

PS:以安装 Tomcat 9.0 为例
一、安装
拉取 Tomcat 镜像docker pull tomcat:9.0
查看安装的 Tomcat 镜像docker images
创建 Tomcat 挂载目录mkdir -p /usr/local/webapps
授权挂载目录chmod -R 777 /usr/local/webapps
启动 Tomcat 容器,并挂在数据卷docker run -di --name=myTomcat -p 8080:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:9.0

二、配置以便访问首页
进入 Tomcat 容器docker exec -it myTomcat /bin/bash
将 webapps.dist 目录中的内容复制到 webapps 目录中cp -r webapps.dist/* webapps/
验证:在本地访问 Tomcat 首页:http://[IP]:[端口号]。如:http://192.168.128.10:8080

三、部署 War 包
将打包好的 War 包,上传到服务器的 /usr/local/webapps 目录下
验证:在本地访问项目首页:http://[IP]:[端口号]/[War 包名]。如
​上传的 War 包为 car.war,则应访问的地址是 http://192.168.128.10:8080/car

6、Dockerfile服务

1、DevOps安装、部署持续集成

二、安装 MySQL,配置数据库
参考 “”

五、安装 Tomcat
参考 “《在 Docker 上安装 Tomcat 容器》” 中的 “一、二”

2、安装部署Jenkins服务

1. 单节点部署

前提

  1. CentOS 镜像版本CentOS-7-x86_64-Minimal-2009.iso

一、安装环境准备

  1. 虚拟机配置最低要求
    1. CPU:4 核
    2. 内存:8 GB
    3. 磁盘:30 GB
  2. 配置虚拟化引擎(如果虚拟机处于运行状态,需要先关机:在左侧列表中,选中对应的虚拟机——右键——设置——在 “虚拟机设置” 弹窗中,选择 “硬件” 标签页——选中 “处理器”——在右侧的 “虚拟化引擎” 中勾选第一项 “虚拟化 Intel VT-x/EPT 或 AMD-V/RVI(V)”
  3. 配置 IP 地址
    1. 进入图形化界面进行配置:nmtui
    2. 重启网络服务:systemctl restart network
    3. 验证:ip a
  4. 安装 vim:yum install -y vim
  5. 修改主机名:hostnamectl set-hostname train。注:此步需重启,但可与后续操作一起,进行一次重启即可
    1. 验证:hostname
  6. 关闭防火墙
    1. 暂时关闭:systemctl stop firewalld
    2. 永久关闭:systemctl disable firewalld
    3. 验证:systemctl status firewalld
  7. 关闭 NetworkManager
    1. 暂时关闭:systemctl stop NetworkManager
    2. 永久关闭:systemctl disable NetworkManager
    3. 验证
      1. 查看服务状态:systemctl status NetworkManager
      2. ping 外网能通:ping www.baidu.com
  8. 关闭 SELinux
    1. 暂时关闭:setenforce 0
    2. 永久关闭:sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    3. 验证:getenforce
  9. 建立 IP 地址映射:vim /etc/hosts。在末尾添加如下配置

192.168.128.150 train

    1. 验证:ping train
  1. 拍摄快照:完成环境准备

二、网络源配置

  1. 将默认 yum 源替换为阿里源:curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  2. 更新 yum 源:yum -y update
  3. 安装 OpenStack 源:yum install -y centos-release-openstack-train
  4. 修改为国内的阿里源:vim /etc/yum.repos.d/CentOS-OpenStack-train.repo
    1. 显示行号::set nu
    2. 删除第 8 行,替换为如下配置

三、一键安装 OpenStack 系统

  1. 安装 packstack 软件包:yum install -y openstack-packstack
  2. 一键部署 packstack:packstack --allinone。成功安装结果如图
  3. 验证
    1. 访问仪表盘页面:http://[OpenStack 服务器 IP]/dashboard。如:http://192.168.128.150/dashboard。能正常打开即为成功。如图
最新文章
国外最火的app排行榜前十名推荐 国外热度高的软件有哪些
由于各国人民之间生活习俗的差别,在手机软件的使用方面,他们的使用习惯也有所区别,有一些小伙伴会好奇,国外人经常使用的软件
企业网站建设如何选择企业cms系统
企业网站主要用于向外界展示企业产品和形象,如果网站内容丰富,页面美观,用户体验好,将会为企业带来潜在的用户,现在很多企业
龙华首家人工智能机器人专业园区来了→
12月13日下午以“AI赋新质·智能赢未来”为主题的2024年龙华区人工智能及机器人产业发展论坛在锦绣科学园举办首家落地在锦绣科学
外链建设规划:打造强劲的外链网络195
规划目标外链建设规划的目标是为[外链提交平台]网站构建一个强大的外链网络,以提高其在搜索引擎结果页面 (SERP) 中的排名。通过
推荐3款 Docker 认证的实用免费插件,轻松管理您的网络!
出品丨Docker公司(ID:docker-cn)编译丨小东每周一、三、五晚6点10分 与您不见不散!Docker 认证技术项目(Docker Certified T
奔向海外 | 中国交通科技企业出海动态
本文选择9家登录资本市场的交通科技企业,汇编其开拓全球市场的最新动态。 近几年,随着宏观经济发展速度放缓,影响智能交通市场
平台转型独立站的策略调整与升级路径:2025展望之路
我们先来看看平台的销售公式:销量=流量(Ranking(销量)+广告)转化率(Review)客单价影响站内排名的主要因素是销量和评价。
程序员写博客如何赚钱「5大盈利方向」
很高兴又和大家见面了,今天我们来聊一聊程序员写博客如何赚钱「5大盈利方向」,还有程序员等等等各种相关干货内容&
提示词工程从入门到精通
提示词工程从入门到精通大数据与人工智能实战专家—李家贵老师广东省人工智能与大数据中心技术总监/数据中台部总经理/CDO课程背
【A516(联通3G)腾讯手机管家下载】联想A516 联通3G腾讯手机管家16.1.19免费下载
腾讯手机管家专注手机骚扰拦截,动态守护手机安全,深度清理微信、QQ缓存,让手机体积减半,拒绝卡慢。---认真服务---【骚扰拦截