docker-compose的使用,连接mysql+tomcat+nginx

本文介绍如何使用 Docker Compose 简化多容器应用部署流程。通过 YML 文件配置 Tomcat、MySQL 和 Nginx 的环境和服务依赖,实现一键启动整个应用堆栈。文章详细解释了配置项含义及执行命令。


安装docker请移步=》 安装docker

安装tomcat、mysql、nginx请移步=》安装步骤

docker-compose介绍

Compose 是用于定义和运行多容器 Docker 应用程序的工具。
通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。
然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

直白一点其实就是将多个容器连接起来,使用docker-compose运行yml配置文件,一键启动多个容器
使用场景:比如tomcat+mysql中项目需要配置mysql的ip地址进行连接,而在docker容器中每个容器的ip是不固定的,所以就需要我们手动去连接。
这里会用到docker中的 --link
而单纯使用--link虽然也能连接两个服务,但是使用不方便,而且连接也是单向的。连接多个服务就比较麻烦。
所以推荐使用docker-compose来连接并启动服务

创建docker-compose.yml文件

保持容器结构整洁,使用前可先删除之前启动的容器 [docker rm 容器名称]
后面使用dokcer-compose执行的时候相当于创建并启动容器

在当前文件加创建docker-compose.yml文件,文件内容如下:
*注意:这里的缩进只能使用空格,使用tab会报错

version: '3.1'

services:
 mysql:
  restart: always
  image: hy:v1
  container_name: mysql
  ports:
  - 3306:3306
  environment:
   MYSQL_ROOT_PASSWORD: 123456
 tomcat:
  restart: always
  image: tomcat:jdk8-openjdk
  container_name: tomcat
  ports:
  - 8080:8080
  links:
   - mysql:mysql
 nginx:
  restart: always
  image: nginx:latest
  container_name: nginx
  ports:
  - 9090:80
  links:
  - tomcat:tomcat

上面是我自己用来连接tomcat、mysql和nginx使用的配置文件

参数解析

单独拿出tomcat的配置解析一下

 tomcat:						//这里是给你的服务起的别名
  restart: always				//开机启动
  image: tomcat:jdk8-openjdk	//镜像名称加tag,[docker image]查询
  container_name: tomcat		//设置启动后容器的名称,这里的名称不要与存在的容器重名
  ports:						//端口映射
  - 8080:8080
  links:
   - mysql:mysql				//冒号前面是需要连接的服务名,后面是tomcat访问的名称
   								//如在tomcat中ping mysql 就使用
   								// docker exec -it tomcat ping mysql
   								//如果是 mysql:m1 就使用 docker exec -it tomcat ping m1
   								//所以项目中连接mysql就可以使用这个地址
   								// url: jdbc:mysql://mysql:3306

执行yml文件

在yml文件目录下执行
docker-compose up -d
出现

Creating mysql ... done
Creating tomcat ... done
Creating nginx  ... done

就说明启动成功了
不过想启动项目,还得配置nginx,mysql要创建数据库和表,并初始化数据。

任务描述 本关任务:使用 docker-compose 进行多容器的管理工作,(可以做到同时关闭同时开启等)。 相关知识 为了完成本关任务,你需要掌握: 前期准备工作; 配置文件; 使用 docker-compose 以及命令。 前期准备工作 下载 docker-compose 在 linux 控制台中下载 docker-compose 命令如下: sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 图 1 如图所示 检验 docker-compose 是否安装成功 使用命令 docker-compose version 进行检验。 图 2 成功如图 如果报错则需要进行下面的全局可用配置。 部署 docker-compose 全局可用(未报错可忽略) docker-compose 并不是安装之后全局可用的,只有在项目文件可用,比如 docker-compose ps 命令所以需要进行 docker-compose 的全局配置(在前文我们下载的路径就是这个所以不需要进行更改和下面的代码)。命令是: cp -p docker-compose /usr/local/bin chmod +x docker-compose 使用之后进行命令:docker-compose version 如若结果为图2则配置成功。 创建项目文件目录 此处需要创建你的项目目录,项目包括配置文件都在此处生成。命令如下: mkdir /data/workspace/myshixun/docker-compose cd /data/workspace/myshixun/docker-compose mkdir mysql cd mysql mkdir config 环境中没有 yum 命令的处理 使用代替代码 此处用 apt-get 的方式来进行下载。 apt-get install -y tree tree /root/docker-compose 查看完成后目录结构如图: 图 3 目录结构 配置文件 mysql 配置 配置完成相关文件比如 yaml 和 mysql 的文件。此次先进行 mysql 的文件配置。命令如下: cd /data/workspace/myshixun/docker-compose/mysql/config/ vi my.cnf 配置信息如下: [mysqld] user=mysql default-storage-engine=INNODB character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 保存退出即可。 docker-compose 配置 此时需要使用 yaml ( yml )文件来进行 docker-compose 的文件配置。 命令如下: cd /data/workspace/myshixun/docker-compose/mysql vi docker-compose.yml 配置信息如下: version: '3' services: mysql: image: mysql restart: always container_name: mysql environment: MYSQL_ROOT_PASSWORD: password TZ: Asia/Shanghai ports: - 3306:3306 volumes: - /data/workspace/myshixun/docker-compose/mysql/data:/var/lib/mysql - /data/workspace/myshixun/docker-compose/mysql/config/my.cnf:/etc/mysql/my.cnf command: --max_connections=1000 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --default-authentication-plugin=mysql_native_password 至
03-27
<think>好的,用户想了解如何使用Docker Compose进行多容器管理,包括前期准备、配置文件编写和命令操作。首先,我需要整理Docker Compose的基本概念和安装步骤,然后详细说明YAML文件的配置方法,最后给出常用命令。同时,要确保符合用户的要求,比如使用正确的中文术语,区分行内公式和独立公式,并且生成相关问题。 首先,前期准备部分需要包括DockerDocker Compose的安装。根据引用[3],Docker Compose是独立产品,需在Docker安装后单独安装。要说明不同系统的安装方法,比如Ubuntu使用apt,CentOS用yum,macOS用Homebrew等。这部分需要简洁明了,用户可能对命令行操作比较熟悉,所以给出具体命令示例。 接下来是编写docker-compose.yml文件。根据引用[2]和[4],配置文件使用YAML格式,定义服务、网络、卷等。需要解释版本号、services下的各个服务配置,比如镜像、端口映射、卷挂载、环境变量、网络设置等。引用中的示例展示了nginxtomcat服务的配置,可以借鉴这个结构,给出一个更通用的示例,比如包含web和数据库服务的例子,这样更贴近常见应用场景。 命令操作部分需要列出常用命令,如启动、停止、查看状态等。用户可能想知道如何构建镜像、查看日志,所以需要包括docker-compose up, down, ps, logs等命令。要注意说明这些命令的使用场景和参数,比如-d后台运行。 最后,生成相关问题,需要围绕Docker Compose的高级功能、优化、网络配置、环境变量管理等方面提问,帮助用户进一步学习。同时,确保引用标记正确,比如引用[2]和[4]涉及配置文件和编排功能。 检查是否所有数学表达式都正确使用了$...$或$$...$$格式,虽然这个问题可能涉及较少数学内容,但如果有变量或代码块,需正确格式化。例如,在提到版本号时,可能不需要数学公式,但代码块要用反引号包裹。 整体结构要清晰,分步骤讲解,让用户能一步步跟随操作。语言要口语化,避免技术术语堆积,同时保持专业性。确保每个部分都有对应的引用标记,比如安装步骤引用[3],配置文件引用[2][4]等。最后,验证YAML示例是否正确,缩进和语法是否符合标准,避免用户复制时出错。</think>### Docker Compose多容器管理配置教程 #### 一、前期准备 1. **安装Docker引擎** - Ubuntu系统: ```bash sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io ``` - CentOS系统: ```bash sudo yum install docker-ce docker-ce-cli containerd.io ``` - macOS:通过[Docker Desktop](https://www.docker.com/products/docker-desktop)安装[^3]。 2. **安装Docker Compose** - Linux系统: ```bash sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` - 验证安装: ```bash docker-compose --version # 输出类似 docker-compose version 2.20.0 ``` --- #### 二、配置文件编写(docker-compose.yml) ```yaml version: '3.8' # 指定Compose文件版本[^2] services: web: # 定义Web服务 image: nginx:latest container_name: my-nginx ports: - "80:80" # 映射宿主机80端口到容器80端口 volumes: - ./html:/usr/share/nginx/html # 挂载静态网页目录 networks: - app-network depends_on: # 依赖数据库服务 - db db: # 定义数据库服务 image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: app_db volumes: - mysql_data:/var/lib/mysql # 持久化数据卷 networks: - app-network networks: app-network: # 自定义网络 driver: bridge volumes: mysql_data: # 声明数据卷 ``` ##### 关键配置解析: - **services**:定义多个容器服务,每个服务可配置镜像、端口、卷等[^2][^4]。 - **networks**:自定义容器间通信网络,提升安全性。 - **volumes**:持久化数据存储(如数据库文件)。 - **depends_on**:控制服务启动顺序。 --- #### 三、常用命令操作 1. **启动所有服务** ```bash docker-compose up -d # -d表示后台运行 ``` 2. **查看运行状态** ```bash docker-compose ps ``` 3. **停止服务并清理资源** ```bash docker-compose down # 移除容器、网络,保留卷 docker-compose down -v # 同时删除数据卷 ``` 4. **查看日志** ```bash docker-compose logs web # 查看web服务日志 ``` 5. **重建服务** ```bash docker-compose up --build # 修改镜像后重新构建 ``` --- #### 四、典型应用场景 1. **Web应用+数据库**(如WordPress+MySQL)[^4] 2. **微服务架构**(多个API服务协同) 3. **开发环境标准化**(统一团队依赖环境) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值