centos7 下使用 Docker Compose

文章目录

介绍

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许你通过一个 YAML 文件来配置应用程序的服务、网络和卷,然后使用一条命令即可创建和启动所有服务。Docker Compose 使得管理复杂的应用程序变得简单,特别适合开发和测试环境。

特点

  • 声明式配置:使用 YAML 文件(通常命名为 docker-compose.yml)来声明应用程序的服务、网络和卷,使得配置更加清晰和易于管理。

  • 一键启动和停止:通过 docker-compose up 命令可以启动所有定义的服务,通过 docker-compose down 命令可以停止并移除所有服务。

  • 依赖管理:Docker Compose 支持服务之间的依赖关系,可以指定服务的启动顺序。

  • 环境变量和配置文件:可以使用 .env 文件来定义环境变量,还可以将配置文件挂载到容器中。

  • 网络管理:支持定义自定义网络,使得容器之间可以方便地进行通信。

  • 卷管理:支持定义数据卷,用于持久化数据和共享数据。

基本使用

1.编写 docker-compose.yml 文件

创建docker compose文件存放目录

复制代码
mkdir /home/docker-work 

创建docker-compose.yml 文件

复制代码
vi docker-compose.yml

编写文件

复制代码
# 名称
name: myblog
# 服务
services:
# 服务名称
  mysql:
  # 容器名称
    container_name: mysql
    # 使用镜像
    image: mysql:8.0
    # 端口映射
    ports:
      - "3306:3306"
      # 环境变量设置
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=wordpress
      # 数据挂载,注意如果是定义了数据卷,则必须在下面数据卷下声明
    volumes:
      - mysql-data:/var/lib/mysql
      - /app/myconf:/etc/mysql/conf.d
    # 设置开机自启
    restart: always
    # 使用网络
    networks:
      - blog

  wordpress:
    image: wordpress
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 123456
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html
    restart: always
    networks:
      - blog
    depends_on:
      - mysql
# 数据卷
volumes:
  mysql-data:
  wordpress:
# 网络
networks:
  blog:

更多详细配置请参考官网文档:https://docs.docker.com/reference/compose-file/

2.在文件夹下运行 docker-compose.yml 文件

docker compose -f [要运行的docker-compose文件名称] up -d

复制代码
docker compose -f docker-compose.yml up -d

3.验证

复制代码
docker ps

4.停止docker-compose

docker compose -f [运行的docker-compose文件名称] down

复制代码
docker  compose -f compose.yaml down

小结

Docker Compose 是 Docker 生态系统中的一个重要工具,它极大地简化了多容器应用程序的部署和管理。通过使用 Docker Compose,你可以更加高效地构建和运行复杂的应用程序。

相关推荐
Leinwin8 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382508 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇8 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7598 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣8 小时前
智能体选型实战指南
运维·人工智能
yy55278 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ9 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔11 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密11 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi201511 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑