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

相关推荐
七七powerful11 分钟前
K8s 工具安装文档 — Harbor + ArgoCD
容器·kubernetes·argocd
立莹Sir12 分钟前
云原生实战:从零搭建企业级K8s环境
云原生·容器·kubernetes
Mapleay18 分钟前
创建 Linux SDK包源码阅读环境
linux·运维·服务器
hong781720 分钟前
阿里coding plan qwen3.6-plus 不支持图片上下文长度只有200K,问题出在哪?
linux·运维·数据库
Lsir10110_26 分钟前
深入链路层:报文 MAC 传输原理与 ARP 欺骗、中间人攻击全解析
运维·服务器·网络
FelixBitSoul30 分钟前
Docker 镜像 SIZE、DISK USAGE、Layer、Prune、.dockerignore 全面解析:pull 到底下载多少?
docker
modelmd33 分钟前
Docker 重命名数据卷
运维·docker·容器
Skilce35 分钟前
K8S部署
linux·运维·服务器·容器·kubernetes
程序员老邢35 分钟前
【技术底稿 12】内网统一日志系统 Loki + Promtail 全流程部署(对接 Grafana,监控日志一体化)
java·运维·程序人生·grafana·devops
张32335 分钟前
kubernetes Pod难点
云原生·容器·kubernetes