一、在两台服务器上安装kvm虚拟化,把其中一台的虚拟机迁移到另一台。
1.两天服务器需要提前开启cpu虚拟化
2.安装KVM相关工具包
yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer cockpit cockpit-machines
启动服务
systemctl start libvirtd
systemctl start cockpit.socket
3.提前准备ISO镜像目录,将需要安装的镜像上传到目录中
4.创建虚拟机:(virt-manager图像工具 virt-install命令行工具)
virt-install --virt-type kvm --os-variant=centos7.0 --name centos7-1 --ram 1024 --vcpus 2 --cdrom=/data/so/CentOS-7-x86_64-Minimal-2009.iso --disk path=/var/lib/libvirt/images/centos7-1.qcow2,size=10,format=qcow2,bus=virtio --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
5.利用virt-clone克隆出模版
virt-clone -o centos7 -n centos7-3 -f /var/lib/libvirt/images/centos7-3.qcow2
-o centos7 //已存在的虚拟机名称
-n centos7-3 //新虚拟机的名称
-f /var/lib/libvirt/images/centos7-3.qcow2 //新虚拟机磁盘文件路径,文件自动生成不需要实现创建
6.虚拟机迁移:
提前准备相同环境
1.拷贝/var/lib/libvirt/images/目录下虚拟机对应数据
2.拷贝/etc/libvirt/qemu/目录下虚拟机对应配置文件
二、手动制作一个容器镜像创建成容器并正常运行。
1.制作自定义基础镜像
1.准备docker环境
2.创建制作镜像目录
mkdir /data/dockerfile/{base/{ubuntu,centos},web/{tomcat,jdk,nginx}} -p
3.进入centos目录拉取基础镜像开始制作自定义基础镜像
cd /data/dockerfile/base/centos
docker pull centos:centos7.7.1908 //拉取centos7基础镜像
vim Dockerfile //创建Dockerfile文件
FROM centos:centos7.7.1908
LABEL maintainer="lgx"
RUN yum -y install wget && rm -f /etc/yum.repos.d/* && wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo \
&& wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo \
&& yum -y install vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof zip unzip nfs-utils gcc make gcc-c++ glibc glibc-dev
el pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel \ && yum clean all \
&& rm -f /etc/localtime \
&& ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4.制作自定义基础镜像
docker build -t centos7-base:v1 .
2.制作JDK镜像
1.进入到JDK目录下,上传JDK压缩包,从centos7主机上拷贝/etc/profile文件到当前目录
cd /data/dockerfile/web/jdk
├── Dockerfile
├── jdk-8u321-linux-x64.tar.gz
└── profile
2.修改profile文件,添加相关变量
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
export
CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
3.准备Dockerfile文件
vim Dockerfile
FROM centos7-base:v1
LABEL maintainer="lgx"
ADD jdk-8u321-linux-x64.tar.gz /usr/local/src/
RUN ln -s /usr/local/src/jdk1.8.0_321 /usr/local/jdk
ADD profile /etc/profile
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin
4.制作JDK镜像
docker build -t centos7-jdk:8u321 .
5.进入镜像验证jdk安装
docker run -it --rm centos7-jdk:8u321 bash
[root@e16bd214cfb1 /]# jave -version
bash: jave: command not found
[root@e16bd214cfb1 /]# java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
[root@e16bd214cfb1 /]#
3.制作tomcat镜像
1.进入到tomcat目录下,将下载好的tomcat压缩包上传到当前目录
├── apache-tomcat-9.0.59.tar.gz
└── Dockerfile
2.创建Dockerfile文件
FROM centos7-jdk:8u321
LABEL maintainer="lgx"
ENV TZ "Asia/Shanghai"
ENV LANG en_US.UTF-8
ENV TERM xterm
ENV TOMCAT_MAJOR_VERSION 9
ENV TOMCAT_MINOR_VERSION 9.0.59
ENV CATALINA_HOME /apps/tomcat
ENV APP_DIR ${CATALINA_HOME}/webapps
RUN mkdir /apps
ADD apache-tomcat-9.0.59.tar.gz /apps
RUN ln -s /apps/apache-tomcat-9.0.59 /apps/tomcat
3.制作tomcat镜像
docker build -t tomcat-base:v1.0 .
4.制作业务镜像
1.在tomcat目录下创建jpress项目目录,将准备好的java程序war包上传到当前目录
mkdir jpress
├── apache-tomcat-9.0.59.tar.gz
├── Dockerfile
└── jpress
├── Dockerfile
└── jpress-v4.0.7.war
2.创建Dockerfile文件
vim Dockerfile
FROM tomcat-base:v1.0
LABEL maintainer="LGX"
RUN echo 'PATH=/apps/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh
RUN . /etc/profile.d/tomcat.sh
RUN rm -rf /apps/tomcat/webapps/ROOT
ADD jpress-v4.0.7.war /apps/tomcat/webapps/ROOT.war
EXPOSE 8080
CMD /apps/tomcat/bin/catalina.sh run
3.制作业务镜像
docker build -t jpress:v1.0 .
4.运行业务镜像
docker run -d --name jpress -p 8080:8080 jpress:v1.0