分享好友 最新资讯首页 最新资讯分类 切换频道
虚拟化技术与应用(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。能正常打开即为成功。如图
最新文章
百度搜索关键词排名优化推广全攻略
青衣网络-www.ra0.cn:百度搜索关键词排名优化推广全攻略目录:1. 理解百度搜索关键词排名机制2. 如何选择合适的关键词3. 内容质
银之杰下跌5.09%,报47.15元/股
12月13日,银之杰盘中下跌5.09%,截至13:16,报47.15元/股,成交18.83亿元,换手率6.2%,总市值333.18亿元。资料显示,深圳市银
权限列表【云雀视频下载助手-在线视频下载】
● 查看网络状态允许应用程序查看所有网络的状态。● 开关WLAN允许应用开启或关闭WLAN● 拍摄照片和视频允许应用拍摄照片或录制
MySQL——窗口函数(笔记整理)
什么是窗口函数? 简单来说就是 将 一个查询SQL 的结果集按指定的规则进行分区,每个分区可以看作是一个窗口,
谷歌竞价(谷歌推广)有效果吗?怎么评估谷歌竞价的效果?
目前实际的情况是,谷歌竞价推广有些人做的很有用,加大投入。有些人觉得就是烧钱的呢?完全没用?首先外贸先生公司先明确我们的
「欧文54分」欧文公牛54分
今天我们来聊聊欧文54分,以下6个关于欧文54分的观点希望能帮助到您找到想要的体育资讯。本文目录报复落选全明星?欧文狂轰54分刷
探索未来,新奥资料免费图库与精选解析落实的深度解读
随着科技的飞速发展和数字化时代的来临,信息资源的获取变得日益便捷,在这样一个时代背景下,关于新奥资料免费图库的信息引起了
SEO小技巧让您的网站优化更成功
中山网站建设SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”。SEO是指通过对网站进行站内优化和
上海淘宝推广培训,黄浦淘宝培训班哪个好
上海淘宝推广培训,黄浦淘宝培训班哪个好咨询电话:咨询手机:在线 微信咨询:edu-school咨询顾问:李老师上海电子商务培训、网络营
廊坊SEO外链代发:提升网站排名新策略
在当今这个数字化时代,企业的在线形象与搜索引擎排名直接关联着其市场竞争力与品牌知名度对于位于河北省东部、京津冀城市群核心