Docker Compose 多容器编排

1.何为Docker Compose

定义:Docker Compose 是一个用于定义和运行多容器 Docker 应用程序 的工具。通过一个 docker-compose.yml 文件来配置应用程序需要的所有服务,然后只需一个命令 (docker compose up),就能启动所有配置好的容器。

作用:使用 yml 文件定义多个容器,一条命令统一启停,解决多服务依赖部署问题

2.docker-compose.yml 核心写法

docker run 参数 docker-compose.yml 写法 你的实战经验对照
-d detach: true 后台运行
--name my-web container_name: my-web 起名字
-p 8080:80 ports: - "8080:80" 端口映射
-v my-vol:/data volumes: - my-vol:/data 数据挂载
--network net1 networks: - net1 网络

3.Nginx+MySQL 组合服务

1.创建compose的工作目录

bash 复制代码
#创建Compose的工作目录
mkdir /opt/compose-demo && cd /opt/compose-demo
mkdir html
echo "docker-compose 多容器测试" > html/index.html

2. 编写yml文件

bash 复制代码
#编写yml文件
vim docker-compose.yml
#声明一个命名数据卷,名称 mysql-data
volumes:
  mysql-data:

#定义两个服务容器 mysql、nginx
services:

  mysql:
      #拉取镜像:mysql 版本 5.7
      image: mysql:5.7
      #自定义容器名字
      container_name: compose-mysql
      ports:
        - "3307::3306"
      #把上面定义的命名卷 mysql-data 挂载到容器内 MySQL 数据目录 /var/lib/mysql
      volumes:
        - mysql-data:/var/lib/mysql
      environment:
        MYSQL_ROOT_PASSWORD: 123456
      #容器退出、服务器重启后,自动重启 MySQL 容器
      restart: always

   nginx:
       image: nginx
       container_name: compose-nginx
       ports:
         - "8080:80"
       volumes:
         - ./html:/usr/share/nginx/html
       depends_on:
         - mysql
       restart: always

#写完后检擦是否有语法问题
docker compose config

3.启动compose服务并验证

bash 复制代码
# 后台启动全部服务
docker-compose up -d

#查看当前运行的 Compose 项目
docker compose ls

# 查看运行容器
docker-compose ps

#查看卷
docker volume ls

#验证nginx服务
curl http://127.0.0.1:8080

#验证容器间网络通信
docker exec compose-nginx curl -v mysql:3306

#拿到返回的IP地址后,在宿主机看是否能ping通

相关推荐
BerryS3N1 小时前
Java 后端转型大模型:Demo 能跑不等于能上线
java·人工智能·python·java后端·spring ai·langchain4j·大模型转型
AI大佬的小弟2 小时前
私有化 Dify 应用开发(1):Dify 入门|Docker 一键部署全流程
docker·大模型落地·ai 应用开发·dify 教程·私有化 ai 部署·docker 实战·开源 ai 平台
秋田君2 小时前
QT_QColorDialog颜色对话框
java·数据库·qt
用户91366296220123 小时前
ViewModelScope 简介与使用
java
上海安当技术3 小时前
老系统零改造接入:旁路代理统一认证实战
java·servlet·架构·kubernetes·jenkins
ShiXZ2133 小时前
Docker 安装 Elasticsearch 7.17.6 完整教程
elasticsearch·docker·容器
Zane19943 小时前
Lock 接口与 AQS 核心原理:手写理解一把可重入锁是怎么运作的
java·后端
Full Stack Developme3 小时前
SpringBoot 整合 Druid 并列出参数清单
java·spring boot·后端
caishenzhibiao3 小时前
顺势交易矩阵主图 同花顺期货通指标
java·c语言·c#