速通Docker === Docker Compose

发布于:2025-02-10 ⋅ 阅读:(45) ⋅ 点赞:(0)

目录

Docker Compose 简介

Docker Compose 常用命令

使用 Docker Compose 启动 WordPress

普通启动方式(使用 Docker 命令)

使用 Docker Compose 启动

Docker Compose 的特性


Docker Compose 简介

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它通过 YAML 文件配置应用程序的服务、网络和卷,从而可以轻松地启动、停止和管理多个容器。

Docker Compose 常用命令

Docker Compose 提供了许多命令来管理多容器应用程序,以下是一些常用命令及其用法:

  • docker compose up -d:启动服务,-d 表示后台运行。
  • docker compose down:停止并删除服务,-v 可选参数用于删除卷。
  • docker compose ps:列出正在运行的服务。
  • docker compose logs:查看服务日志,-f 实时跟踪。
  • docker compose build:构建服务镜像,--no-cache 禁用缓存。
  • docker compose exec:在运行的容器中执行命令。
  • docker compose restart:重启服务。
  • docker compose stop:停止服务。
  • docker compose start:启动已停止的服务。
  • docker compose pull:拉取服务的镜像。
  • docker compose config:验证并查看配置文件。
  • docker compose run:运行一次性命令,--rm 完成后删除容器。

使用 Docker Compose 启动 WordPress

WordPress 是一个功能强大且广泛使用的开源内容管理系统(CMS),基于 PHP 和 MySQL 构建。它允许用户通过简单的安装和配置,快速搭建个人博客、企业网站、新闻门户等多种类型的网站。WordPress 提供了丰富的主题和插件生态系统,用户可以根据自己的需求轻松定制网站的外观和功能。

普通启动方式(使用 Docker 命令)

创建网络

docker network create blog

启动 MySQL 容器

docker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=shiguang \
-e MYSQL_DATABASE=wordpress \
-v mysql-data:/var/lib/mysql \
-v /home/mysql/config:/etc/mysql/conf.d \
--restart always --name mysql \
--network blog \
mysql:8.0

启动 WordPress 容器

docker run -d -p 8080:80 \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=shiguang \
-e WORDPRESS_DB_NAME=wordpress \
-v wordpress:/var/www/html \
--restart always --name wordpress-app \
--network blog \
wordpress:latest

使用 Docker Compose 启动

version 指定 Docker Compose 文件版本(如 3.8)。
services 定义服务(容器)的集合。
image 指定服务使用的 Docker 镜像。
container_name 设置服务的容器名称。
ports 映射容器端口到宿主机端口(如 8080:80)。
environment 设置服务的环境变量(如 MYSQL_ROOT_PASSWORD)。
volumes 挂载卷到容器(如 mysql-data:/var/lib/mysql)。
restart 设置容器的重启策略(如 alwayson-failure)。
depends_on 定义服务依赖关系(如 depends_on: [mysql])。
networks 定义服务所属的网络。

编写 docker-compose.yml 文件

# 服务名称
name: myblog
# 服务
services:
  mysql:
    # 容器名称
    container_name: mysql
    # 镜像
    image: mysql:8.0
    # 端口
    ports:
      - "3306:3306"
    # 环境变量
    environment:
      - MYSQL_ROOT_PASSWORD=shiguang
      - MYSQL_DATABASE=wordpress
    # 挂载
    volumes:
      - mysql-data:/var/lib/mysql
      - /opt/docker/mysql/config:/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: shiguang
      WORDPRESS_DB_NAME: wordpress
    # 挂载
    volumes:
      - wordpress:/var/www/html
    # 重启策略
    restart: always
    # 网络
    networks:
      - blog
    # 依赖
    depends_on:
      - mysql

 
volumes:
 # 挂载
  mysql-data:
  wordpress:

networks:
  # 网络
  blog:


启动服务

切换到 docker-compose.yml 文件所在目录。

执行命令:docker compose up -d

指定文件名启动

如果文件名不是默认的 docker-compose.yml,可以使用 -f 指定文件名:

docker compose -f compose.yml up -d

Docker Compose 的特性

增量更新

修改 docker-compose.yml 文件后重新启动应用,只会触发修改项的重新启动。

数据安全

默认情况下,即使使用 docker-compose down 停止容器,所有挂载的卷也不会被移除。

如果需要删除容器的同时删除所有卷,可以使用以下命令:

docker compose down --rmi all -v

通过 Docker Compose,可以更高效地管理多容器应用程序,简化开发和部署流程。


网站公告

今日签到

点亮在社区的每一天
去签到