当前位置: 首页 > article >正文

速通Docker === Docker Compose

目录

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,可以更高效地管理多容器应用程序,简化开发和部署流程。


http://www.kler.cn/a/517020.html

相关文章:

  • pdf与ofd的区别详细对比
  • ThinkPHP 8请求处理-获取请求对象与请求上下文
  • 双目立体校正和Q矩阵
  • 密码无关认证:金融机构如何解决密码问题
  • skynet 源码阅读 -- 启动主流程
  • 【2024年华为OD机试】(A卷,200分)- 优雅子数组 (JavaScriptJava PythonC/C++)
  • WebAssembly视频检测在社区创作平台的落地与实践 | 得物技术
  • 设计模式的艺术-职责链模式
  • 解决npm install总是卡在sill idealTree buildDeps不动问题
  • 【java】签名验签防篡改研究测试
  • 解决Python 在 Flask 开发模式下定时任务启动两次的问题
  • C# OpenCV机器视觉:交通标志识别
  • 【Uniapp-Vue3】下拉刷新
  • 最新-CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机
  • maven打包springboot项目出现找不到符号错误
  • k8s 蓝绿发布、滚动发布、灰度发布
  • git和idea重新安装后提交异常
  • 【安当产品应用案例100集】034-安当KSP支持密评中存储数据的机密性和完整性
  • Stable Diffusion 图片背景完美替换
  • 游戏设备升级怎么选?RTX4070独显,ToDesk云电脑更具性价比
  • 仿 RabbitMQ 的消息队列3(实战项目)
  • 深度学习-93-大语言模型LLM之基于langchain的模型IO的输出解析
  • JAVA系统中Spring Boot 应用程序的配置文件:application.yml
  • 监控系统-zabbix
  • JAVA与数据结构-线性表
  • Git处理冲突详解