docker compose搭建博客wordpress

一、前言

docker安装等入门知识见我之前的这篇文章

https://blog.csdn.net/m0_73118788/article/details/146986119?fromshare=blogdetail\&sharetype=blogdetail\&sharerId=146986119\&sharerefer=PC\&sharesource=m0_73118788\&sharefrom=from_link

1.1 docker compose介绍

Docker Compose 是 Docker 官方提供的一个工具,它可以帮助你定义和运行多个 Docker 容器的应用。他有如下几个用途:

  • 多容器应用编排:在实际开发和生产环境中,一个应用往往由多个微服务组成,每个微服务可能运行在独立的 Docker 容器中。例如,一个 Web应用可能包含 Web 服务器容器、数据库容器、缓存容器等。Docker Compose允许你在一个文件中定义这些容器及其依赖关系,然后通过一条命令将它们一次性启动、停止或重新部署。
  • 开发环境搭建:开发人员可以使用 Docker Compose快速搭建一个与生产环境一致的开发环境。通过定义各个服务的镜像、端口映射、环境变量等配置,确保开发团队成员的环境一致性,减少因环境差异导致的问题。
  • 测试环境部署:在进行集成测试或端到端测试时,需要同时启动多个相关的容器。Docker Compose可以方便地管理这些容器的启动和停止,为测试提供一个稳定的环境。

1.2 docker compose用法初探

bash 复制代码
#批量上线
docker compose up -d
#批量下线
docker compose down
#启动
docker compose start x1 x2
#停止
docker compose stop x1 x2
#扩容
docker compose scale x2=3

以下是对这三条 Docker Compose 命令的详细解释:

docker compose up -d

功能概述

该命令的主要作用是根据 docker-compose.yml 文件的配置,创建并启动所有定义的服务容器。

参数解释
  • up:这是 Docker Compose 的一个子命令,其功能是创建并启动服务。
  • -d:即 --detach,它让容器以分离模式在后台运行。这样做的好处是,容器启动后不会将日志信息输出到当前终端,而是返回容器的 ID,方便用户继续在终端执行其他操作。
使用示例

假设你的 docker-compose.yml 文件定义了一个 Web 服务和一个数据库服务,当你在该文件所在目录下执行 docker compose up -d 时,Docker Compose 会自动拉取所需的镜像(如果本地不存在),然后创建并启动这两个服务的容器,使它们在后台运行。

docker compose down

功能概述

此命令用于停止并删除由 docker compose up 创建的容器、网络和(可选的)卷。

详细解释

当你执行 docker compose down 时,Docker Compose 会按以下步骤操作:

  1. 停止正在运行的所有服务容器。
  2. 删除这些容器。
  3. 删除 docker-compose.yml 文件中定义的网络。
  4. 若使用了 --volumes 选项,还会删除定义的命名卷。
使用示例

当你完成测试或不再需要这些容器时,在 docker-compose.yml 文件所在目录下执行 docker compose down,可以快速清理环境,释放系统资源。

docker compose start x1 x2

功能概述

该命令用于启动已经停止的服务容器。x1x2 是你在 docker-compose.yml 文件中定义的服务名称,你可以指定一个或多个服务名称,用空格分隔。

详细解释
  • start:是 Docker Compose 的子命令,用于启动指定的服务。
  • x1 x2:代表你要启动的服务名称。
使用示例

假设你的 docker-compose.yml 文件定义了多个服务,如 webdbcache 等。当你执行 docker compose stop web db 停止了 webdb 服务后,后续可以通过 docker compose start web db 重新启动这两个服务。

总结来说,docker compose up -d 用于启动整个应用栈,docker compose down 用于清理环境,docker compose start 则用于启动已停止的特定服务。

docker compose stop x1 x2

功能概述

该命令的主要功能是停止 docker-compose.yml 文件中指定的服务容器。这里的 x1x2 代表在 docker-compose.yml 文件里定义的服务名称,你能够指定一个或多个服务名称,以空格分隔。

参数解释
  • stop:属于 Docker Compose 的子命令,其作用是停止正在运行的服务容器。
  • x1 x2:指的是要停止的服务名称。
使用示例

假设你的 docker-compose.yml 文件定义了多个服务,像 webdbcache 等。当你执行 docker compose stop web db 时,Docker Compose 会找到 webdb 对应的容器,并且停止它们的运行。不过,这些容器只是被停止,并没有被删除,之后你可以使用 docker compose start web db 再次启动它们。

docker compose scale x2=3

功能概述

此命令用于调整指定服务的容器数量。x2 是在 docker-compose.yml 文件中定义的服务名称,3 表示要将该服务的容器数量扩展或收缩到 3 个。

参数解释
  • scale:是 Docker Compose 的子命令,其用途是调整服务的容器数量。
  • x2=3:其中 x2 为服务名称,3 是期望的容器数量。如果当前 x2 服务的容器数量小于 3,Docker Compose 会创建新的容器以达到 3 个;若当前容器数量大于 3,Docker Compose 会停止并删除多余的容器,使容器数量变为 3 个。
使用示例

假设在 docker-compose.yml 文件中定义了一个 worker 服务,最初只启动了 1 个容器。当你执行 docker compose scale worker=3 时,Docker Compose 会再创建 2 个 worker 服务的容器,让 worker 服务的容器总数达到 3 个。这在需要根据负载情况动态调整服务规模时非常有用。

二、做法

工程过程

1. 创建yaml文件

准备yaml文件内容

bash 复制代码
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:                                                                                                                                                                                                                                                    

命令:

bash 复制代码
vim compose

然后页面有跳转,按i则页面进入insert模式,粘贴上面的yaml文件内容,按Esc退出编辑,按:wq保存并返回命令行

2. 执行yaml文件

bash 复制代码
docker compose -f 文件名.yaml up -d

命令行查看


3. 完成验收

访问网站8080端口即可

三、原始方法

此是没有compose的方法,如果你只想搭建博客wordpress或学习compose,完全可以忽略该章节

命令如下

bash 复制代码
docker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=wordpress \
-v mysql-data:/var/lib/mysql \
-v /app/myconf:/etc/mysql/conf.d \
--restart always --name mysql \
--network blog\
mysql:8.0



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

架构图:

相关推荐
tianfs3 小时前
docker安装和镜像源替换
ubuntu·docker
专注代码七年3 小时前
如何在腾讯云 OpenCloudOS 上安装 Docker 和 Docker Compose
docker
江湖有缘5 小时前
【Docker管理工具】部署Docker管理面板DweebUI
运维·docker·容器
masx2005 小时前
在 Docker 中部署 etcd 并解决权限问题实战指南,成功解决permission denied问题!
docker·etcd
小钱c78 小时前
MacOS安装Docker Desktop并汉化
macos·docker·容器
笨小蛙8 小时前
服务器Docker容器创建与VScode远程连接SSH使用
服务器·vscode·docker·容器·ssh
蓝色的猴子9 小时前
Linux.docker.k8s基础概念
linux·docker·kubernetes
斯普信云原生组9 小时前
K8S集群主机网络端口不通问题排查
网络·容器·kubernetes
matrixlzp9 小时前
K8S StatefulSet 快速开始
云原生·容器·kubernetes
David爱编程10 小时前
容器网络是怎么工作的?Pod、Service、CNI 一次讲清楚!
后端·云原生·容器