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


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

参考文章

相关推荐
_.Switch1 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410831 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.1 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
芯盾时代2 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方3 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘3 小时前
NFS服务器
运维·服务器
南猿北者4 小时前
docker容器
docker·容器
苹果醋34 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰4 小时前
[linux]docker基础
linux·运维·docker
time never ceases4 小时前
使用docker方式进行Oracle数据库的物理迁移(helowin/oracle_11g)
数据库·docker·oracle