如何从CentOS镜像中快速部署应用
导读:从CentOS镜像快速部署应用的流程(以Docker为核心) 使用Docker容器化技术,可将应用及其依赖打包为轻量级镜像,实现快速部署、环境隔离、易扩展的目标。以下是具体步骤: 1. 准备基础环境:安装Docker 在CentOS系统上,...
从CentOS镜像快速部署应用的流程(以Docker为核心)
使用Docker容器化技术,可将应用及其依赖打包为轻量级镜像,实现快速部署、环境隔离、易扩展的目标。以下是具体步骤:
1. 准备基础环境:安装Docker
在CentOS系统上,首先需要安装Docker引擎,用于构建和运行容器。
- 卸载旧版本(若有):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine - 安装必要工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 - 添加Docker镜像源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - 安装Docker CE:
sudo yum install -y docker-ce docker-ce-cli containerd.io - 启动并设置开机自启:
sudo systemctl start docker& &sudo systemctl enable docker - 验证安装:
sudo docker run hello-world(若输出“Hello from Docker!”则表示成功)。
2. 编写Dockerfile:定义镜像构建规则
Dockerfile是镜像构建的核心脚本,需根据应用类型定制。以下是常见场景的示例:
- 通用CentOS应用镜像(如Nginx、Java):
FROM centos:7 ENV DEBIAN_FRONTEND=noninteractive # 避免交互式配置提示 RUN yum update -y & & \ yum install -y httpd & & \ # 安装Apache(以Nginx为例可替换为nginx包) yum clean all # 清理缓存 COPY ./html /var/www/html # 将本地网页文件复制到容器默认web目录 EXPOSE 80 # 暴露80端口(HTTP) CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"] # 启动Apache服务(前台运行) - Python应用镜像(如Flask、Django):
FROM centos:7 ENV PYTHONUNBUFFERED=1 # 让Python输出实时显示 RUN yum install -y python3 python3-pip & & \ yum clean all WORKDIR /app # 设置工作目录 COPY . /app # 复制应用代码到容器 RUN pip3 install --no-cache-dir -r requirements.txt # 安装依赖 EXPOSE 5000 # 暴露应用端口 CMD ["python3", "app.py"] # 启动应用 - Go应用镜像(如Web服务):
FROM centos:7 RUN yum -y update & & \ yum -y install vim git gcc-c++ wget & & \ wget -P /root/ https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz & & \ tar -zxvf /root/go1.14.1.linux-amd64.tar.gz -C /usr/local & & \ echo export PATH=$PATH:/usr/local/go/bin > > /etc/profile & & \ source /etc/profile & & \ go version & & \ echo "source /etc/profile" > > /root/.bashrc & & \ go env -w GOPROXY=https://goproxy.cn,direct & & \ go env -w GO111MODULE=on # 配置Go环境(含代理) WORKDIR /app COPY . . RUN go build -o main . # 编译Go程序 CMD ["./main"] # 运行程序 ```。
3. 构建Docker镜像
在Dockerfile所在目录,执行以下命令构建镜像(-t指定镜像名称,.表示当前目录):
docker build -t my-centos-app . # 如my-centos-webserver、my-python-app
构建过程中,Docker会依次执行Dockerfile中的指令,最终生成可复用的镜像。
4. 运行容器:启动应用
通过docker run命令启动容器,将镜像转化为运行中的应用实例:
docker run -d --name my-running-app -p 8080:80 my-centos-app # 以my-centos-app镜像为例
-d:后台运行容器;--name:指定容器名称(便于管理);-p:将宿主机的8080端口映射到容器的80端口(外部通过宿主机IP:8080访问);my-centos-app:镜像名称。
5. 验证部署
- 检查容器状态:
docker ps(查看运行中的容器,确认状态为“Up”); - 查看日志:
docker logs my-running-app(查看容器输出,排查启动错误); - 访问应用:浏览器输入
http://< 宿主机IP> :8080(如http://127.0.0.1:8080),若看到应用页面则表示部署成功。
6. 可选优化:提升部署效率
-
使用Docker Compose管理多容器:若应用包含多个服务(如Web+数据库),可编写
docker-compose.yml文件,一键启动所有服务:version: '3' services: web: build: . # 构建当前目录的Dockerfile ports: - "8080:80" # Web服务端口映射 db: image: postgres # 使用官方PostgreSQL镜像 environment: POSTGRES_PASSWORD: example # 数据库密码启动命令:
docker-compose up -d(后台运行)。 -
配置国内镜像源:修改Docker守护进程配置(
/etc/docker/daemon.json),添加国内镜像加速:{ "registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"] }重启Docker生效:
sudo systemctl restart docker(提升镜像下载速度)。
通过以上步骤,可实现CentOS镜像的快速、标准化应用部署,适用于Web服务、后端应用、数据库等多种场景。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何从CentOS镜像中快速部署应用
本文地址: https://pptw.com/jishu/739338.html
