一.系统环境

服务器版本 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. 深入了解 Spring Boot 核心特性、注解和 Bean 作用域

    Spring Boot 是什么? Spring Boot 是基于 Spring Framework 构建应用程序的框架,Spring Framework 是一个广泛使用的用于构建基于 Java 的企业 ...

  2. Sample Post

    HTML Elements Below is just about everything you'll need to style in the blog. Heading 1 Heading 2 H ...

  3. 前端使用 Konva 实现可视化设计器(4)

    给上一章做一个补充,就是实现通过上下左右按键移动所选节点. 继续求 Star ,希望大家多多一键三连,十分感谢大家的支持~ 创作不易,Star 50 个,创作加速! github源码 gitee源码 ...

  4. AI数字人互动大屏:如何改变我们的生活?

    随着科技的飞速进步和人工智能技术的日益成熟,智能制造正在成为推动制造业转型升级的核心力量. 互动数字人具有强大的情感分析能力,可以根据观众的表情.语气等实时反馈,作出恰当而富有情感的回应.这不仅让每一 ...

  5. ImageJ软件使用教程(二):图像测量

    目录 图像比例尺 加载图像 设置比例尺 标注比例尺 测量长度面积 测量长度 测量面积 参考资料 图像比例尺 使用ImageJ软件测量图像中的长度.面积等信息时,需要先设置图像的比例尺,比例尺用于将图像 ...

  6. EasyNLP发布融合语言学和事实知识的中文预训练模型CKBERT

    简介: 本⽂简要介绍CKBERT的技术解读,以及如何在EasyNLP框架.HuggingFace Models和阿里云机器学习平台PAI上使⽤CKBERT模型. 导读 预训练语言模型在NLP的各个应用 ...

  7. Java异步非阻塞编程的几种方式

    简介: Java异步非阻塞编程的几种方式 一. 从一个同步的Http调用说起 一个很简单的业务逻辑,其他后端服务提供了一个接口,我们需要通过接口调用,获取到响应的数据. 逆地理接口:通过经纬度获取这个 ...

  8. ACK正式支持对基于Alibaba Cloud Linux操作系统的集群进行等保加固

    简介: 我们对基于Alibaba Cloud linux操作系统的ACK集群进行等保加固,意味着阿里云在云产品开发和交付的过程中将安全作为重要组成部分,将合规融入到产品的"血液"中 ...

  9. 【全观测系列】Elasticsearch应用性能监控最佳实践

    ​简介:本文介绍了应用性能监控的应用价值以及解决方案等. 1.什么是全观测? 要了解全观测,我们先看看传统运维存在哪些问题. 数据孤岛,分散在不同部门,分析排查故障困难: 多个厂商的多种工具,无法自动 ...

  10. 知乎的 Flink 数据集成平台建设实践

    简介: 本文由知乎技术平台负责人孙晓光分享,主要介绍知乎 Flink 数据集成平台建设实践.内容如下: 1. 业务场景 : 2. 历史设计 : 3. 全面转向 Flink 后的设计 : 4. 未来 F ...