Linux虚拟机进行容器化部署的核心流程
容器化部署是将应用及其依赖打包为轻量级容器(如Docker容器),在Linux虚拟机中运行,实现快速部署、隔离和管理。以下是具体步骤:
首先需要搭建Linux虚拟机(如使用VMware、VirtualBox等工具),并确保虚拟机满足以下要求:
sudo apt update && sudo apt upgrade -y(Ubuntu/Debian)或sudo yum update -y(CentOS/RHEL)更新系统软件包。容器引擎是容器化部署的基础,Docker是最常用的选择。安装步骤如下:
sudo apt update(Ubuntu/Debian)或sudo yum update -y(CentOS/RHEL);sudo apt install -y apt-transport-https ca-certificates curl software-properties-common(Ubuntu/Debian)或sudo yum install -y yum-utils(CentOS/RHEL);curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -,然后sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable";curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -,然后cat <<EOF | sudo tee /etc/apt/sources.list.d/docker.list,内容为deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable,最后sudo apt update;sudo apt install -y docker-ce docker-ce-cli containerd.io(Ubuntu/Debian/CentOS均适用);sudo systemctl start docker,sudo systemctl enable docker;docker --version,输出Docker版本信息则表示安装成功。默认情况下,Docker命令需要sudo权限。为简化操作,可将当前用户加入docker组:
sudo usermod -aG docker $USER,然后运行newgrp docker使配置立即生效(无需注销)。
镜像是容器的模板,包含操作系统、运行环境和应用依赖。从Docker Hub(官方镜像仓库)拉取所需镜像,例如拉取Ubuntu 20.04镜像:
docker pull ubuntu:20.04。也可根据需求拉取其他镜像(如Nginx、MySQL、Redis等)。
使用docker run命令创建并启动容器,常用参数说明:
-d:后台运行容器(守护进程模式);--name:指定容器名称(便于管理);-p:端口映射(格式:宿主机端口:容器端口,如-p 8080:80表示将宿主机的8080端口映射到容器的80端口);-it:以交互模式运行容器(分配伪终端,保持标准输入打开)。示例:创建一个名为my-ubuntu的容器,基于Ubuntu 20.04镜像,后台运行并映射8080端口:
docker run -d --name my-ubuntu -p 8080:80 ubuntu:20.04。
若需进入容器内部(如调试),可使用docker exec -it my-ubuntu /bin/bash命令。
docker ps(显示运行中的容器)或docker ps -a(显示所有容器,包括停止的);docker logs my-ubuntu(查看my-ubuntu容器的日志输出);docker exec -it my-ubuntu /bin/bash(进入my-ubuntu容器的命令行界面);http://localhost:8080(若容器内运行了Web服务,如Nginx),应能看到对应页面。docker stop my-ubuntu(停止my-ubuntu容器);docker start my-ubuntu(启动已停止的my-ubuntu容器);docker rm my-ubuntu(删除my-ubuntu容器,需先停止);docker rmi ubuntu:20.04(删除ubuntu:20.04镜像,需先删除依赖该镜像的容器)。若需要管理多个容器(如微服务架构),可使用Kubernetes(K8S)进行编排。步骤如下:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16(根据网络插件调整CIDR);kubeadm join命令;kubectl create deployment nginx --image=nginx创建Nginx Deployment,使用kubectl expose deployment nginx --port=80 --type=NodePort暴露Service。通过以上步骤,即可在Linux虚拟机中完成容器化部署,实现应用的轻量级、快速运行和管理。