Docker Compose 使用方法

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它允许您通过一个单独的配置文件来定义多个容器、网络设置、存储卷等,从而简化了多容器应用的部署和管理过程。使用 Docker Compose,您可以轻松地创建和管理复杂的容器化应用程序,而无需手动管理每个容器。Docker Compose 使用 yml文件来描述应用程序的配置。在这个yml 文件中,您可以定义各个服务(容器)的镜像、端口映射、环境变量、依赖关系等信息。然后,您只需要运行一个命令,Docker Compose 就会根据配置文件自动创建、启动和连接这些容器。

前言

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它允许您通过一个单独的配置文件来定义多个容器、网络设置、存储卷等,从而简化了多容器应用的部署和管理过程。使用 Docker Compose,您可以轻松地创建和管理复杂的容器化应用程序,而无需手动管理每个容器。

Docker Compose 使用 yml文件来描述应用程序的配置。在这个yml 文件中,您可以定义各个服务(容器)的镜像、端口映射、环境变量、依赖关系等信息。然后,您只需要运行一个命令,Docker Compose 就会根据配置文件自动创建、启动和连接这些容器。

安装 Docker Compose

如果你安装了适用于 Windows、或 Linux 的 Docker 桌面,那么您已经拥有 Docker Compose!

Linux 如果不是 Docker 桌面,可以使用存储库安装与更新;

Ubuntu 安装与更新

sudo apt-get update
sudo apt-get install docker-compose-plugin

Red Hat 安装与更新

sudo yum update
sudo yum install docker-compose-plugin

验证是否安装 Docker Compose

docker compose version

创建 docker-compose.yml 文件

在你的项目目录中创建一个名为 docker-compose.yml 的文件。在这个文件中,你可以定义你的应用程序的服务、网络和卷等。

创建一个MySQL 与 tomcat 示例

version: '3.8'
services:
  mysql:
    image: mysql:latest
    container_name: mysql_db
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
    ports:
      - "3306:3306"
    volumes:
      - data_group:/var/lib/mysql
  tomcat:
    image: tomcat:latest
    container_name: tomcat_server
    ports:
      - "8080:8080"
    volumes:
      - data_group:/usr/local/tomcat/webapps
volumes:
  data_group:
    external: true

1、version: '3.8':这个文件使用的是Docker Compose的版本3.8。

2、这个服务使用最新的MySQL镜像(mysql:latest);并将容器命名为"mysql_db";在environment部分,我们设置了MySQL数据库的root用户密码;通过ports部分,我们将容器的3306端口映射到主机的3306端口,允许从主机连接MySQL服务;定义了一个命名卷mysql_data,用于持久化MySQL数据库的数据。

3、这个服务使用最新的Tomcat镜像(tomcat:latest);并将容器命名为"tomcat_server";通过ports部分,我们将容器的8080端口映射到主机的8080端口,允许从主机访问Tomcat服务;定义了一个命名卷tomcat_data,用于持久化Tomcat的web应用程序(webapps)数据。

4、在volumes部分,我们对之前定义的两个命名卷mysql_data和tomcat_data进行了声明。这样,Docker将会为这两个命名卷创建持久化存储,并确保在容器重新创建时保留数据。

5、最后可以使用"volumes"关键字的扩展语法来将多个卷组合成一个组。让我们将"mysql_data"和"tomcat_data"放入一个组,并命名该组为"data_group"。

使用Docker Compose启动服务

Linux中也差不多,windows 中打开命令行终端(PowerShell或CMD)并导航到保存docker-compose.yml文件的目录。例如,如果您保存在 D:\docker 目录下,可以通过以下命令进入该目录;

-d标志是可选的,它使得Docker Compose在后台运行 容器。

docker-compose up -d

docker images命令可以列出所有本地已下载的Docker镜像:

docker images
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11天前
|
关系型数据库 MySQL API
|
25天前
|
缓存 监控 持续交付
|
7天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
7天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
17 1
|
19天前
|
负载均衡 监控 开发者
深入浅出:掌握 Docker Compose 的高级用法
【10月更文挑战第22天】本文深入探讨了 Docker Compose 的高级用法,包括环境变量、服务扩展、网络配置和数据卷管理。通过实例详细介绍了如何利用这些功能提升开发效率和应用部署的灵活性。适合希望深入了解 Docker Compose 的开发者阅读。
|
7天前
|
NoSQL Redis Docker
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过 YAML 文件管理多个容器,简化复杂系统的部署和管理。本文介绍了 Docker Compose 的基本概念,并通过一个包含 Redis DB 和 Python Web 模块的示例,展示了如何使用 Docker Compose 部署和管理多容器应用。手动部署和 Docker Compose 部署的对比突显了 Docker Compose 在系统复杂度增加时的优势。
|
7天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
28 0
|
1月前
|
Ubuntu Linux 网络安全
Docker&Docker Compose安装(离线+在线)
Docker&Docker Compose安装(离线+在线)
192 1
|
1月前
|
存储 Kubernetes 持续交付
Docker Compose
【10月更文挑战第3天】
46 6
|
1月前
|
存储 Kubernetes 调度
掌握 Docker Compose
【10月更文挑战第6天】
17 1