【Docker 系列】docker 学习十,Compose 编写规则及 wp 实战

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 【Docker 系列】docker 学习十,Compose 编写规则及 wp 实战

Docker 系列】docker 学习十,Compose 编写规则及wp 实战

yaml 规则

docker-compose.yaml 是 Compose 的核心,咱们一定要学会 yaml 编写的规则

当然,咱们还是查看官方文档,compose 部分

compose file

yaml 文件的结构分为三层:

  • version

版本号

  • services

服务名

  • 其他配置,如网络,挂载等公共的东西
version:''   # 版本号
services:
  服务器1 web:
    当前服务的配置,这个部分就可以和DockerFile 写的差不多了
    build
    depends_on
    ...
  服务2 redis:
  ...
  服务n mongodb:
network:
volume:
...
其他配置

上面说的到版本号在哪里找呢?

进入 dockerhub 网页,docs.docker.com/compose/com…

image.png

官网上的这些都是可以使用的版本,如官网给出的例子:

version: "3.9"
services:
  redis:
    image: redis:alpine
    ports:
      - "6379"
    networks:
      - frontend
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure
      ...
networks:
  frontend:
  backend:
volumes:
  db-data:

services 和 其他命令都可以写什么呢?

services 下面可以写的命令非常的多,文档上也讲的非常的详细

  • Service configuration reference
  • build # 构建容器的路径
  • context # 指定dockerfile 的路径 或者 git存储库的url
  • dockerfile    # 指定 dockerfile 文件
  • args              # 添加构建的参数
  • cache_from  # 缓存解析的镜像列表
  • labels          # 添加元数据,我们也可以使用数组或者是字典
  • network      # 定义网络
  • shm_size    # 设置构建镜像的分区大小 /dev/shm,例如 shm_size: '2gb'
  • target         # 指定构建的作用,例如 prod,test,dev
  • cap_add, cap_drop   # 添加或删除容器的功能
  • cgroup_parent         # 指定一个可选的父容器组
  • command                  #  覆盖默认命令
  • configs                       # 授予服务配置访问权限
  • depends_on            # 指定依赖的服务
  • deploy                       # 指定与服务的部署和运行相关的配置
  • Network configuration reference
  • driver

如上命令还是非常的多,我们一下子肯定也是记不住的,需要我们慢慢去熟悉,用的多了,写的多了,看得多了,知识慢慢的也根深蒂固了

咱们学习的方法有:

  • 多看官方文档,看官网的例子
  • 看开源项目,看看别人的 docker-compose.yaml 是如何编写的

实战-搭建 wp 博客

咱们来使用 docker-compose.yaml 的方式来搭建我们的个人博客,感受一下一键部署的魅力

创建工作目录

mkdir my_wordpress
cd my_wordpress

编写我们的 docker-compose.yaml 文件

version: "3.9"
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
    ports:
      - "8888:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress_data: {}

解释一下 docker-compose.yaml 文件的含义:

  • 安装了 2 个服务,一个是 db mysql,一个是 wordpress 服务
  • 数据库服务
  • mysql 使用的镜像是 mysql:5.7
  • 挂载是挂到 /var/lib/mysql,默认使用的是具名挂载,所有会挂载到宿主机的这个路径 /var/lib/docker/volumes/my_wordpress_db_data/_data
  • 设置 mysql 相关的环境变量
  • wordpress 服务
  • 依赖数据库服务
  • 用的镜像是 wordpress:latest
  • 挂载卷是 /var/www/html,会挂载到我们宿主记得这个目录 /var/lib/docker/volumes/my_wordpress_wordpress_data/_data
  • 设置端口,将宿主记得 8888 端口映射到容器的 80 端口
  • 设置 wordpress  相关的环境变量

docker-compose up 一键部署服务并启动

在工作目录执行如下指令一键部署服务

#docker-compose up

我们也可以在让服务在后台启动

#docker-compose up -d

启动之后我们可以看到程序先去创建网络,创建对应的挂载卷

image.png

开始创建并启动对应的容器

  • my_wordpress_db_1
  • my_wordpress_wordpress_1

image.png

查看一下博客搭建的效果

我们可以访问博客地址:服务器的IP:8888

image.png

nice,使用docker-compose.yaml 搭建个人的 wordpress 博客成功!!!

wordpress 的界面是这个样子的,里面的功能很多,直接就在页面上定制化我们自己的页面,非常方便,xdm 可以尝试一波,不亏

image.png

参考资料


欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
人工智能 前端开发 Docker
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
在 AI 智能体开发中,开发者常面临本地调试与云端部署的矛盾。本文介绍如何通过 Docker Compose 与 Docker Offload 解决这一难题,实现从本地快速迭代到云端高效扩容的全流程。内容涵盖多服务协同、容器化配置、GPU 支持及实战案例,助你构建高效、一致的 AI 智能体开发环境。
268 1
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
|
1月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
23天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
209 5
|
2月前
|
运维 数据可视化 开发者
2025年 三个 Docker Compose 可视化管理器测评
本文对比了三款主流的 Docker Compose 可视化管理工具。随着 Docker 的普及,Compose 已成为多容器应用部署的标准,但 YAML 配置复杂、协作困难等问题也日益突出。三款工具各有侧重:Docker Desktop 适合个人本地开发,Portainer 适合小团队运维管理,而 Websoft9 则通过 GitOps 实现了强大的版本控制与团队协作能力。文章从可视化编辑、部署便捷性、版本管理等方面进行评测,为不同使用场景提供了推荐方案,展望了未来 Compose 管理向 GitOps 深度融合的发展趋势。
255 1
2025年 三个 Docker Compose 可视化管理器测评
|
数据可视化 开发工具 git
GitOps 驱动的 Docker Compose 可视工具化来了,图形化编辑器上玩转容器编排
Docker Compose 简化了多容器应用的部署,但随着应用复杂度上升,文本配置方式逐渐暴露出维护难、协作效率低等问题。基于 GitOps 的可视化 Docker Compose 工具应运而生,通过图形界面降低使用门槛,提升配置准确性和团队协作效率。结合 GitOps,实现配置变更的版本追踪、自动化部署与环境一致性,为多容器应用管理提供高效、安全的解决方案。
|
4月前
|
供应链 测试技术 开发者
用 Docker 轻松部署 ERPNext 15:多场景实战指南
ERPNext 15 是一款功能全面的开源企业资源规划系统,结合 Docker 容器化部署,具备高效、灵活、低成本等优势。适用于小微企业数字化起步、多分支机构协同办公、开发者测试环境搭建、短期项目管理及企业内部培训等多种场景。模块化设计支持按需扩展,满足不同规模企业需求,是实现高效企业管理的理想选择。
用 Docker 轻松部署 ERPNext 15:多场景实战指南
|
4月前
|
NoSQL 安全 Redis
Docker Compose :从入门到企业级部署
Docker Compose 是用于定义和运行多容器应用的工具,支持服务、网络和卷三大核心要素。通过简洁的 YAML 文件,可实现应用的快速部署与管理,适用于开发、测试及生产环境。
285 1
下一篇
开通oss服务