当你看到这篇文章的时候,表明你已经有docker的基础知识了,或者可以看上一篇文章 Docker 入门教程

传统的使用wordpress搭建网站,意味着你需要搭建以下四个环境:

  • php;
  • apache / nginx;
  • mysql;
  • wordpress;

这里面主要是php的搭建真心麻烦,各种依赖,版本不兼容,然后还有php跟mysql的插件,我是吃了它很大的苦,寻求让我快乐的方法,知道我发现了它。使用docker容器技术5分钟快速搭建wordpress,相信我,真的是五分钟。

一台linux服务器

你需要一台linux或者ubuntu服务器,阿里云或者腾讯云的都可以。

新建并启动 MySQL 容器

$ docker container run \
-d \
--rm \
--name wordpressdb \
--env MYSQL_ROOT_PASSWORD=123456 \
--env MYSQL_DATABASE=wordpress \
mysql:5.7

上面的命令会基于 MySQL 的 image 文件(5.7版本)新建一个容器。该命令的五个命令行参数的含义如下。

  • --rm:停止运行后,自动删除容器文件。
  • --name wordpress:容器的名字叫做wordpress。
  • --env MYSQL_ROOT_PASSWORD=123456:向容器进程传入一个环境变量MYSQL_ROOT_PASSWORD,该变量会被用作 MySQL 的根密码。
  • --env MYSQL_DATABASE=wordpress:向容器进程传入一个环境变量MYSQL_DATABASE,容器里面的 MySQL 会根据该变量创建一个同名数据库(本例是WordPress)。

新建并启动 WordPress 容器

基于官方的 WordPress image,新建并启动 WordPress 容器。

docker container run \
-d \
-p 8080:80 \
--rm \
--name wordpress \
--env WORDPRESS_DB_PASSWORD=123456 \
--link wordpressdb:mysql \
--volume "$PWD/wordpress":/var/www/html \
wordpress

该命令执行完后,会在当前目录下生成一个wordpress目录。

-p 8080:80:将容器的 80 端口映射到当前物理机的8080端口。
--volume "$PWD/wordpress":/var/www/html:将容器的`/var/www/html`目录映射到当前目录的wordpress子目录,操作$pwd/wordpress目录,相当于操作容器里面的/var/www/html目录了。

这个时候你想浏览器输入公网ip : 8080端口,其实是访问不了的,有两个原因:

  • 有的人可能没有这个问题,比如我用的是阿里云的服务器,8080端口默认没有加入安全组,需要去阿里云控制台新建安全组,把8080端口加进去;
  • 容器里面的wordpress数据库配置文件没有修改,这里通过$pwd/wordpress映射,修改。

修改WordPress配置文件

目前有两个容器

[root@iZbp180j96p8y98l1s1oucZ ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f03c15abfe54 wordpress "docker-entrypoint.s…" 17 hours ago Up 17 hours 172.24.49.41:8080->80/tcp wordpress
f6274d57162a mysql:5.7 "docker-entrypoint.s…" 18 hours ago Up 18 hours 3306/tcp, 33060/tcp wordpressdb

进入wordpress容器,通过names名为wordpress,或者container id为f03c15abfe54,都可以进入容器,命令格式为:

[root@iZbp180j96p8y98l1s1oucZ ~]# docker exec -it f03c15abfe54 /bin/bash
root@f03c15abfe54:/var/www/html# cd wp-content/
root@f03c15abfe54:/var/www/html/wp-content# ll
bash: ll: command not found

通过exit命令即可退出当前容器环境,返回到linux命令行。

可以看到,在容器里面操作及其不方便,由于前面将容器的/var/www/html目录映射到当前目录的wordpress子目录,我们可以直接操作当前目录下的wordpress目录。

[root@iZbp180j96p8y98l1s1oucZ ~]# ll
total 4
drwxr-xr-x 5 33 tape 4096 May 27 12:35 wordpress
[root@iZbp180j96p8y98l1s1oucZ ~]# vim wordpress/wp-config.php

需要修改下面三个

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') ); /** MySQL database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') ); /** MySQL database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', '123456') );

然后浏览器输入公网ip:8080,即可进去wordpress安装界面,跟着向导,几分钟就完成了。

到这里,如果不出意外的话,你的网站应该已经可以访问了,接下来就是绑定到域名以及写文章去丰富内容了。


如果想进入mysql容器,也是同样类似的命令:

[root@iZbp180j96p8y98l1s1oucZ ~]# docker exec -it f6274d57162a /bin/bash
root@f6274d57162a:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 812
Server version: 5.7.34 MySQL Community Server (GPL) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+
5 rows in set (0.00 sec) mysql> exit;
Bye
root@f6274d57162a:/# exit
exit

Docker五分钟搭建Wordpress的更多相关文章

  1. Debian 上面五分钟搭建 WordPress - 博客/网站平台

    没有废话,步骤如下: 下载安装软件,MySQL Apache PHP sudo aptitude install mysql-server mysql-client ##安装 MySQLsudo ap ...

  2. Centos 7使用docker部署LAMP搭建wordpress博客系统

    0.简要概述 LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案.docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级.可移植的容器. ...

  3. 五分钟搭建一个基于BERT的NER模型

    BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...

  4. 5分钟搭建wordpress个人博客网站——宝塔傻瓜式部署,无坑系列,附赠主题和md插件[2021-12-31]

    一.前言 自从买了服务器,小编已经马不停蹄的学了两天服务搭建的知识,问了很多大佬,快速搭建自己的博客网站.有四种方式,我在这里全部分享给大家.自己已经搭建好,欢迎大家过来看一下,给你提供个思路哈! 小 ...

  5. [原]五分钟搭建gitserver

    本来在忙一些事情,结果刚才突然收到一个临时的事情,号称很着急. 问了一下,原来是需要在本地搭建一个git库,但其实之前我是有做过gitserver的,不过是在阿里云(部分分布在青云)上,而且目前在使用 ...

  6. 五分钟搭建博客系统 OK?

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 概要: 通过 Docker Compose 在使用Docker容器构建的隔离环境中轻松运行 WordPress.在开始之前,请确保已安 ...

  7. docker一分钟搭建nginx服务器

    运行nginx服务 拉取: docker pull nginx:1.17.9 运行: docker run -d --name nginx -P 80:80 nginx:1.17.9 -d表示在后台启 ...

  8. 五分钟搭建起一个包含CRUD功能的JqGrid表格

    之前的项目也曾用过JgGrid对它的基本功能也是略有了解,网上有个国外的开源的项目,但是不适合个人的风格,所以花了3天空余的时间封装了下JqGrid,也算是参加开发工作10个月以来写的第一个比较完整的 ...

  9. 负载均衡LVS之DR(附:NFS共享存储) 五分钟搭建手册

    一:DR-模式 调度器Ip:192.168.1.254 服务器ip:192.168.1.1/192.168.1.2 VIP:192.168.1.10 ——配置负载均衡调度器: 关闭重定向响应配置: V ...

随机推荐

  1. SHA256sum系列命令检测文件完整性

    1 sha256sum sha256sum是一个检测文件完整性的命令,一般下载的文件都会附带一个哈希值,使用sha256sum计算下载文件的哈希值再与目标哈希值比较即可确定文件是否完整,类似的命令还有 ...

  2. 网络编程Netty入门:Netty的启动过程分析

    目录 Netty的启动过程 Bootstrap 服务端的启动 客户端的启动 TCP粘包.拆包 图示 简单的例子 Netty编解码框架 Netty解码器 ByteToMessageDecoder实现类 ...

  3. xss-labs全关教程

    0x01 Level 1 查看源码,可以看到接收了name参数,并直接嵌入到HTML页面中了 没有任何过滤,而且直接会当作代码执行. 0x02 Level 2 先传入<script>ale ...

  4. Jmeter(四十三) - 从入门到精通高级篇 - Jmeter之IP伪装和欺骗(详解教程)

    1.简介 我们从小接受的教育就是不要撒谎,要做一个诚实的孩子,但是在现实生活中有时候说一个善意的谎言也不是可以的.这里由于服务器各种安全机制的限制和校验,因此我们不得不欺骗一下服务器,今天宏哥就给大家 ...

  5. Java变量详解(变量定于及语法创建)

    变量的使用定义 变量用于操作系统中,实体之间的传递,把变量看作一个在内存空间中声明的存储位置,在调用变量的时候,系统会自动的调用内存中的存储位置. 在Java中,变量又称为字段,故字段在Java中又有 ...

  6. volatile修饰全局变量,可以保证并发安全吗?

    今天被人问到volatile能不能保证并发安全? 呵,这能难倒我? 上代码: //电脑太好,100线程起步~public class ThreadTest { private static volat ...

  7. 1057 Stack

    Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...

  8. 让vim显示空格,tab字符,及vim多行注释

    1.显示 TAB 键 文件中有 TAB 键的时候,你是看不见的.要把它显示出来: :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里 ...

  9. hook Android系统调用的乐趣和好处

    翻译:myswsun 0x00 前言 Android的内核是逆向工程师的好伙伴.虽然常规的Android应用被限制和沙盒化,逆向工程师可以按自己希望自定义和改变操作系统和内核中行为.这给了你不可多得的 ...

  10. Linux中环境变量的设置

    目录 环境变量 Shell定义的环境变量 查看环境变量 Linux下环境变量的设置 环境变量 在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软 ...