一.系统环境

服务器版本 docker软件版本 CPU架构
CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64

二.前言

使用mysql镜像和WordPress镜像搭建一个个人博客。WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。

mysql镜像的环境变量的解释可以去网易云镜像中心查看https://c.163yun.com/hub#/library/repository/info?repoId=3553

WordPress镜像的环境变量的解释:

三.搭建博客

3.1 创建wordpress和mysql容器

1.提前拉取wordpress和mysql的镜像

[root@k8smaster ~]# docker pull hub.c.163.com/library/wordpress:latest

[root@k8smaster ~]# docker pull hub.c.163.com/library/mysql:latest

#需要准备的wordpress和mysql镜像
[root@k8smaster ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/library/wordpress latest dccaeccfba36 4 years ago 406MB
hub.c.163.com/library/mysql latest 9e64176cd8a2 4 years ago 407MB

2.查看wordpress镜像的创建历史,可以看到数据卷挂载的目录:VOLUME [/var/www/html],镜像开放的端口为 EXPOSE 80/tcp

[root@k8smaster ~]# docker history hub.c.163.com/library/wordpress:latest
IMAGE CREATED CREATED BY SIZE COMMENT
dccaeccfba36 4 years ago /bin/sh -c #(nop) CMD ["apache2-foreground"] 0B
<missing> 4 years ago /bin/sh -c #(nop) ENTRYPOINT ["docker-entry… 0B
<missing> 4 years ago /bin/sh -c #(nop) COPY file:db1f48c4963a4352… 6.85kB
<missing> 4 years ago /bin/sh -c set -ex; curl -o wordpress.tar.g… 23.9MB
<missing> 4 years ago /bin/sh -c #(nop) ENV WORDPRESS_SHA1=5376cf… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV WORDPRESS_VERSION=4.8… 0B
<missing> 4 years ago /bin/sh -c #(nop) VOLUME [/var/www/html] 0B
<missing> 4 years ago /bin/sh -c a2enmod rewrite expires 60B
<missing> 4 years ago /bin/sh -c { echo 'opcache.memory_consumpt… 171B
<missing> 4 years ago /bin/sh -c set -ex; apt-get update; apt-g… 5.9MB
<missing> 4 years ago /bin/sh -c #(nop) CMD ["apache2-foreground"] 0B
<missing> 4 years ago /bin/sh -c #(nop) EXPOSE 80/tcp 0B
<missing> 4 years ago /bin/sh -c #(nop) WORKDIR /var/www/html 0B
<missing> 4 years ago /bin/sh -c #(nop) COPY file:24613ecbb1ce6a09… 1.35kB
<missing> 4 years ago /bin/sh -c #(nop) ENTRYPOINT ["docker-php-e… 0B
<missing> 4 years ago /bin/sh -c #(nop) COPY multi:3775aa358569083… 5.92kB
<missing> 4 years ago /bin/sh -c set -xe && buildDeps=" $PHP_EX… 32.5MB
<missing> 4 years ago /bin/sh -c #(nop) COPY file:207c686e3fed4f71… 587B
<missing> 4 years ago /bin/sh -c set -xe; fetchDeps=' wget ';… 12.9MB
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_SHA256=c464af6124… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_URL=https://secur… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_VERSION=5.6.31 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV GPG_KEYS=0BD78B5F9750… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_LDFLAGS=-Wl,-O1 -… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_CPPFLAGS=-fstack-… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_CFLAGS=-fstack-pr… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_EXTRA_CONFIGURE_A… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_EXTRA_BUILD_DEPS=… 0B
<missing> 4 years ago /bin/sh -c { echo '<FilesMatch \.php%sSourceCode%gt;'; … 237B
<missing> 4 years ago /bin/sh -c set -ex && . "$APACHE_ENVVARS" … 33B
<missing> 4 years ago /bin/sh -c a2dismod mpm_event && a2enmod mpm… 68B
<missing> 4 years ago /bin/sh -c set -ex && sed -ri 's/^export (… 1.92kB
<missing> 4 years ago /bin/sh -c #(nop) ENV APACHE_ENVVARS=/etc/a… 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV APACHE_CONFDIR=/etc/a… 0B
<missing> 4 years ago /bin/sh -c apt-get update && apt-get instal… 6.99MB
<missing> 4 years ago /bin/sh -c mkdir -p $PHP_INI_DIR/conf.d 0B
<missing> 4 years ago /bin/sh -c #(nop) ENV PHP_INI_DIR=/usr/loca… 0B
<missing> 4 years ago /bin/sh -c apt-get update && apt-get install… 200MB
<missing> 4 years ago /bin/sh -c #(nop) ENV PHPIZE_DEPS=autoconf … 0B
<missing> 4 years ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 4 years ago /bin/sh -c #(nop) ADD file:a023a99f7d01868b1… 123MB

3.创建mysql的root密码和数据库

使用MySQL镜像创建容器:

  • --name指定容器名称;
  • -e指定环境变量,-e MYSQL_ROOT_PASSWORD指定MySQL的root密码,-e MYSQL_DATABASE指定创建的数据库名称;
  • -v /data:/var/lib/mysql进行数据卷挂载,宿主机目录为/data,MySQL容器目录为/var/lib/mysql
[root@k8smaster ~]# docker run -dit --restart=always --name=mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -v /data:/var/lib/mysql hub.c.163.com/library/mysql:latest
62dc266d58a45a2d19889267af2805fdd429e3033031407bd11111b20ede87ff

数据卷挂载之后,宿主机的/data/目录里就有MySQL容器数据目录里的内容了

[root@k8smaster ~]# ls /data/
auto.cnf ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1 ibtmp1 mysql performance_schema sys

获取mysql容器的IP地址:172.17.0.4

[root@k8smaster ~]# docker inspect mysql | grep -i ipaddr
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.4",
"IPAddress": "172.17.0.4",

4.创建wordpress容器,并连接mysql对应的数据库

使用wordpress镜像创建容器:

  • --name指定容器名称
  • -v /blog:/var/www/html进行数据卷挂载,宿主机目录为/blog,wordpress容器目录为/var/www/html
  • -e WORDPRESS_DB_HOST=172.17.0.4指定MySQL数据库的IP地址, -e WORDPRESS_DB_USER=root指定使用MySQL的root用户连接MySQL, -e WORDPRESS_DB_PASSWORD=123456说明MySQL的密码为123456, -e WORDPRESS_DB_NAME=wordpress指定连接MySQL的wordpress数据库
  • -p 80:80进行端口映射,宿主机端口为80,容器端口为80,意思是把容器的80端口映射到物理机的80端口,访问宿主机的IP:80即可访问wordpress容器
[root@k8smaster ~]# docker run -dit --restart=always --name=wordpress -v /blog:/var/www/html -e WORDPRESS_DB_HOST=172.17.0.4 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -e WORDPRESS_DB_NAME=wordpress -p 80:80 hub.c.163.com/library/wordpress:latest
8360d3c2c109d6a4ad05361d5dfe50dbad6b0642c7b8e871bae4396c8cb71f48

5.查看容器,可以看到wordpress和mysql容器正在运行

[root@k8smaster ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8360d3c2c109 hub.c.163.com/library/wordpress:latest "docker-entrypoint.s…" 53 seconds ago Up 48 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp wordpress
62dc266d58a4 hub.c.163.com/library/mysql:latest "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 3306/tcp mysql

3.2 在wordpress界面设置个人博客信息

因为wordpress容器进行了端口映射,访问宿主机IP:80即可访问wordpress,在浏览器打开http://192.168.110.137/,出现如下wordpress页面

语言选择简体中文,点击继续

设置站点标题,用户名,密码,email,安装WordPress

WordPress安装成功之后,点击登录

根据你设置的账号进行登录

此时个人博客就搭建完毕了

点击文章,点击写文章

撰写新文章,点击发布

此时就可以看到我们写的文章了

到此,博客搭建完毕,如果要给外界访问,则需要申请云主机和域名。

3.3 WordPress容器创建命令的简化版本

1.删除wordpress容器

[root@k8smaster ~]# docker rm -f wordpress
wordpress

2.创建wordpress容器

--link=mysql:mysql链接MySQL容器,并起别名为mysql

--link, 可以使新生成的容器链接到已在运行的容器,具体使用用法可以看之前博客《docker --link容器互联》https://www.cnblogs.com/renshengdezheli/p/16640281.html

[root@k8smaster ~]# docker run -dit --restart=always --name=wordpress --link=mysql:mysql -v /blog:/var/www/html -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -e WORDPRESS_DB_NAME=wordpress -p 80:80 hub.c.163.com/library/wordpress:latest
2c3d943c7c153b74d7e91f4e0f9f2043d7b39d9be4051ca851892c68f961fab9 [root@k8smaster ~]# docker rm -f wordpress
wordpress #这是简化版的命令
[root@k8smaster ~]# docker run -dit --restart=always --name=wordpress --link=mysql:mysql -v /blog:/var/www/html -p 80:80 hub.c.163.com/library/wordpress:latest
b25333f5f51f01199c50ab8971baf74a1a99cb25b1eba0d646531cd191abfdd7

使用docker 5分钟搭建一个博客(mysql+WordPress)的更多相关文章

  1. 运用BT在centos下搭建一个博客论坛

    在日常的工作和学习中,我们都很希望有自己的工作站,就是自己的服务器,自己给自己搭建一个博客或者是论坛,用于自己来写博客和搭建网站论坛.现在我们就用一个简单的方法来教大家如何30分钟内部署一个博客网站. ...

  2. 【网站开发】在新浪SAE上搭建一个博客

    概述 在新浪SAE上搭建一个博客 1.访问新浪SAE站点 http://sae.sina.com.cn/ 2.注册新浪SAE 3.选择应用仓库 4.选择WordPress 5.安装WordPress ...

  3. 使用Hexo快速搭建一个博客,并部署到github

    本文旨在记录一下我在通过hexo搭建一个博客,并将其部署在github上面的过程,也供我自己在以后的使用过程中能够快速学习和参考.需要看更详细或者官方文档的可以点击Hexo官方文档进行查看. 安装前提 ...

  4. Hexo博客框架10分钟搭建个人博客

    首先是先给大家打个招呼 最近看网上看到了很多的的关于搭建博客的视频,我自己也学着自己搭建了一个博客"我自己的博客链接"(欢迎大家来我的博客跟我深入交♂流),今天我把搭建的过程记录下 ...

  5. 使用 Github + Hexo 从 0 搭建一个博客

    最近有几位同学在公众号后台留言问我的博客站是怎么建站的,思来想去,还是写一篇从 0 开始吧. 前置准备 我们先聊一下前置准备,可能很多同学一听说要自己搭一个博客系统,直接就望而却步.不得有台服务器么, ...

  6. Docker DevOps实战: 一分钟搭建Hexo博客

    原文地址:https://yq.aliyun.com/articles/53772 Hexo博客 Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown解析文章,在几秒内,即可利 ...

  7. Go搭建一个博客系统

    go语言环境就不用多说了,版本肯定越高越好,这里用go1.10 先放着

  8. Docker + WordPress搭建个人博客

    WordPress是目前非常受欢迎的开源博客系统,今天使用Docker + WordPress搭建个人博客,整个过程非常丝滑. 搭博客先要准备域名和服务器,昨天在阿里云买了个.top的域名花了5块钱( ...

  9. 3分钟搭建一个网站?腾讯云Serverless开发体验

    作为一个开发者,应该都能理解一个网站从开发到上线,要经过很多繁琐的步骤. 编写代码,部署应用,部署数据库,申请域名,申请SSL证书,域名备案,到最终上线起码要几天时间. 作为一个不精通代码的业务玩家, ...

  10. 《Hexo+github搭建个人博客》

    <Hexo+github搭建个人博客> 文/冯皓林 完稿:2016.4.22-2016.4.23 注意:本节教程只针对Windows用户.本教程由无人赞助,赞助写出. <Hexo+g ...

随机推荐

  1. 通过 Traefik Hub 暴露家里的网络服务

    Traefik Hub 简介 ️Reference: 你的云原生网络平台 -- 发布和加固你的容器从未如此简单. Traefik Hub 为您在 Kubernetes 或其他容器平台上运行的服务提供一 ...

  2. HarmonyOS极客松“上分秘籍”! 高手们顶峰相见!

      HarmonyOS 极客马拉松2023 火热进行中,我们期待与各位开发者相聚一起,践行极客精神,创造无限可能! 我们鼓励各位极客们自由组队,挥洒创意,用HarmonyOS 探索移动应用和服务的更多 ...

  3. centos-stream-9 centos9 配置国内yum源 阿里云源

    源配置 tips: yum配置文件路径 /etc/yum.repos.d/centos.repo 1.备份源配置 [Very Important!] mv /etc/yum.repos.d/cento ...

  4. 聊聊 Redis Stream

    Redis Stream 是 Redis 5.0 版本中引入的一种新的数据结构,它用于实现简单但功能强大的消息传递模式. 这篇文章,我们聊聊 Redis Stream 基本用法 ,以及如何在 Spri ...

  5. UML 哲学之道——概况篇[二]

    前言 简单介绍一下uml的概况篇. 正文 UML 概述: url 包括: 事物 关系 图 扩展机制 事物: 结构: 类.接口.构件.节点等等 行为:交互.状态等等 分组:包.子系统等等 注释:注释 关 ...

  6. 重新整理数据结构与算法(c#)—— 平衡二叉树[二十三]

    前言 因为有些树是这样子的: 这样子的树有个坏处就是查询效率低,因为左边只有一层,而右边有3层,这就说明如果查找一个数字大于根元素的数字,那么查询判断就更多. 解决方法就是降低两边的层数差距: 变成这 ...

  7. pageSpy - 远程调试利器

    视频版: https://www.bilibili.com/video/BV1Zi4y167TZ 前言 在工作中, 经常需要面对的问题就是处理客户提出的bug. 但是这个事儿最耗费精力甚至决定能不能修 ...

  8. 同义词查找,关键词扩展,使用腾讯Tencent AILAB的800万词向量,gensim,annoy

    最近在做一个关键词匹配系统,为了更好的效果, 添加一个关键词扩展的功能.使用Tencent AIlab的800万词向量文件. 腾讯AILAB的800万词向量下载地址:https://ai.tencen ...

  9. 【笔记】Oracle Offset 以及力扣

    [笔记]Oracle Offset offset 代表跳过前 n 行,如果表少于 n+1 条记录,结果集将是空的:比如 n = 100,表示从 101 开始往后查. fetch next 代表往后查 ...

  10. 力扣560(java&python)-和为k的子数组(中等)

    题目: 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 . 示例 1: 输入:nums = [1,1,1], k = 2输出:2示例 2: 输入:n ...