使用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应用程序。通过定义服务、网络和卷的配置文件,我们可以轻松地一键部署复杂的应用环境。这种方法不仅提高了开发和部署的效率,也使得应用的可移植性和可维护性得到了极大的提升。


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

参考文章

相关推荐
晚风吹人醒.1 小时前
SSH远程管理及访问控制
linux·运维·ssh·scp·xshell·访问控制·远程管理
DigitalOcean1 小时前
DigitalOcean容器注册表推出多注册表支持功能
容器
necessary6532 小时前
使用Clion查看linux环境中的PG源码
linux·运维·服务器
江湖有缘3 小时前
Jump个人仪表盘Docker化部署教程:从0到 搭建专属导航页
运维·docker·容器
Lam㊣4 小时前
Centos 7 系统docker:更换镜像源
linux·docker·centos
FL16238631294 小时前
win11+WSL+Ubuntu-xrdp+远程桌面闪退+黑屏闪退解决
linux·运维·ubuntu
挖土机_0084 小时前
Kubernetes 1.35 原地扩容(In-Place Pod Resize)完整解析:机制、差异与实战示例
docker·kubernetes
AOwhisky5 小时前
Linux逻辑卷管理:从“固定隔间”到“弹性存储池”的智慧
linux·运维·服务器
05大叔5 小时前
大事件Day02
运维·服务器
左直拳5 小时前
将c++程序部署到docker
开发语言·c++·docker