使用Docker Compose一键部署

文章目录

使用Docker Compose一键部署

一、引言

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过一个YAML文件来配置你的应用服务,然后使用一个简单的命令,就可以创建并启动所有服务。这种方式大大简化了多容器应用的部署和管理过程。本文将详细介绍如何使用Docker Compose一键部署前后端分离项目。

二、环境准备

1、安装Docker和Docker Compose

1.1、安装Docker

首先,确保你的系统满足Docker的安装要求,然后通过以下命令安装Docker:

bash 复制代码
//下载containerd.io包
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
//安装依赖项
yum install -y yum-utils device-mapper-persistent-data lvm2
//设置镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//安装docker
yum install -y docker-ce
1.2、安装Docker Compose

Docker Compose可以通过以下命令进行安装:

bash 复制代码
//安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
//文件授权
chmod +x /usr/local/bin/docker-compose

2、验证安装

安装完成后,可以通过以下命令来验证Docker和Docker Compose是否安装成功:

bash 复制代码
docker version
docker-compose --version

三、编写Docker Compose文件

1、创建目录结构

首先,创建一个工作目录,并在其中创建必要的子目录:

bash 复制代码
cd /home
mkdir lory
cd lory
mkdir conf db jar html

2、编写Dockerfile

根据项目需求,编写相应的Dockerfile。例如,对于MySQL服务,Dockerfile可能如下:

Dockerfile 复制代码
# 基础镜像
FROM mysql:5.7
# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/

3、编写docker-compose.yml

编写一个docker-compose.yml文件,定义服务、网络和卷:

yaml 复制代码
version: '3'
services:
  mysql:
    image: mysql:5.7
    build: ./mysql
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/logs:/logs
      - ./mysql/data:/var/lib/mysql
    environment:
      MYSQL_DATABASE: 'purchase_system'
      MYSQL_ROOT_PASSWORD: 123456

四、部署项目

1、构建镜像

在项目根目录下运行以下命令构建镜像:

bash 复制代码
docker-compose build

2、启动服务

使用以下命令启动所有服务:

bash 复制代码
docker-compose up -d

3、验证部署

通过访问应用的前端界面或使用相关工具(如数据库管理工具)来验证服务是否正常运行。

五、总结

Docker Compose提供了一种简单而强大的方式来部署和管理多容器Docker应用程序。通过定义服务、网络和卷的配置文件,我们可以轻松地一键部署复杂的应用环境。这种方法不仅提高了开发和部署的效率,也使得应用的可移植性和可维护性得到了极大的提升。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

相关推荐
风翼靓崽12 小时前
linux命令杂记 - 杂乱无章
linux·运维·服务器
域中四大13 小时前
rk3568中修改波特率
linux·运维
互联网推荐官13 小时前
大模型应用开发的上下文工程与推理链路深度拆解
大数据·运维·人工智能
BIGmustang13 小时前
基于rancher-rke部署 k8s集群
容器·kubernetes·rancher
风曦Kisaki13 小时前
# Linux Shell 编程入门 Day01:Shell 基础认知、脚本编写规范、变量四大类型、数值运算
linux·运维·chrome
云智慧AIOps社区13 小时前
云智慧亮相第二十八届智能体驱动的GOPS全球运维大会2026 · 深圳站!以运维智能体 Castrel AI (SRE Agent)保障系统稳定可靠!
运维·人工智能·ai agent·运维自动化·sre 智能体
校羽干13 小时前
ubuntu22.04 安装卸载更新 ollama
运维·服务器
大强同学13 小时前
Obsidian链接收藏自动化
运维·自动化
MXsoft61813 小时前
**七八个系统来回切换****?用****一体化运维监控管理平台**
运维
Cat_Rocky14 小时前
通过k8s实现单pod部署
java·容器·kubernetes