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,你可以更加高效地构建和运行复杂的应用程序。

相关推荐
XIAOHEZIcode9 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
武子康1 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化