前言
Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它允许您通过一个单独的配置文件来定义多个容器、网络设置、存储卷等,从而简化了多容器应用的部署和管理过程。使用 Docker Compose,您可以轻松地创建和管理复杂的容器化应用程序,而无需手动管理每个容器。
Docker Compose 使用 yml文件来描述应用程序的配置。在这个yml 文件中,您可以定义各个服务(容器)的镜像、端口映射、环境变量、依赖关系等信息。然后,您只需要运行一个命令,Docker Compose 就会根据配置文件自动创建、启动和连接这些容器。
安装 Docker Compose
如果你安装了适用于 Windows、或 Linux 的 Docker 桌面,那么您已经拥有 Docker Compose!
Linux 如果不是 Docker 桌面,可以使用存储库安装与更新;
Ubuntu 安装与更新
代码语言:javascript复制sudo apt-get update
sudo apt-get install docker-compose-plugin
Red Hat 安装与更新
代码语言:javascript复制sudo yum update
sudo yum install docker-compose-plugin
验证是否安装 Docker Compose
代码语言:javascript复制docker compose version
创建 docker-compose.yml 文件
在你的项目目录中创建一个名为 docker-compose.yml 的文件。在这个文件中,你可以定义你的应用程序的服务、网络和卷等。
创建一个MySQL 与 tomcat 示例
代码语言:javascript复制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在后台运行 容器。
代码语言:javascript复制docker-compose up -d
用docker images命令可以列出所有本地已下载的Docker镜像:
代码语言:javascript复制docker images