Docker搭建WordPress---搭建属于自己的个人博客

Docker搭建WordPress—搭建属于自己的个人博客

使用docker部署动态博客,使用到的数据库是MySQL,使用到的博客框架是wordpress。
一、安装Docker:
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。关于Docker的基本认识可以简单看一下此视频【docker入门】10分钟,快速学会docker】更多详细的docker介绍可以自行查看百度。

Linux安装Docker:
Ubuntu Docker 安装 | 菜鸟教程
Debian Docker 安装 | 菜鸟教程
CentOS Docker 安装 | 菜鸟教程

Windows安装DockerWindows Docker 安装 | 菜鸟教程

二、开始搭建
Docker安装完后即可进行搭建,以下有两种方式
第一种:

docker pull wordpress:latest  //安装WordPress

docker pull mysql:latest    //安装MySQL

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag  //启动MySQL

这里注释一下:

  • docker run :启动容器
  • –name some-mysql:指定容器的名字,这里设置为some-mysql
  • -e MYSQL_ROOT_PASSWORD:指定ROOT密码
  • -d:后台运行容器
  • tag参数是MySQL的版本号,可以是5.7、5.6、8.0。
docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress //启动WordPress

//name参数指定要启动的WordPress实例名称,link参数指定要使用的Docker MySQL实例名称,p参数将Docker内部的80端口映射到本地的8080端口上。

然后打开浏览器,输入localhost:8080(端口号是命令中设置的),然后就可以看到WordPress了。按照提示输入用户名等信息,然后安装WordPress。等到它提示安装完成,那么WordPress的安装就算大功告成了。
最后稍加配置,再添加诸如内网映射等功能之后,站点就可以对外访问

在这里插入图片描述
详细的部署文档可以参考此博客:Docker快速搭建WordPress博客网站
第二种:

因为Docker的官方服务器部署在国外,拉取镜像时会很慢,我们换上阿里云的镜像加速器。 对于使用 Windows 10的系统,安装好运行之后,在系统右下角托盘 Docker 图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Engine。在 Registrymirrors一栏中填写加速器地址https://9cpn8tt6.mirror.aliyuncs.com,之后点击 Apply 保存后,Docker就会重启并应用配置的镜像地址了。

如果嫌以上部署命令太麻烦可以下载一个配置文件docker-compose.yml,里面包含了我们要拉取的镜像信息以及各种配置信息,这样能省去一行一行敲命令的麻烦。
文件内容如下:

version: “2.0”

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
     ports:
       - "8080:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}

接着
cmd进入docker-compose.yml所在的目录,输入命令

docker-compose up -d

拉取并配置完成后可以在浏览器地址栏输入:localhost:8080开始你的建站之旅

关于联网
因为没舍得买服务器,上面的博客搭建都是在本地电脑上搭建的,暂且不能通过外网访问到该站点。这里提供下几种联网的思路:
1、假如购买了服务器
第一种:那么一开始就可以在购买的虚拟主机里搭建博客,而不必在自己电脑上折腾,建议看看这个如何在阿里云服务器上搭建wordpress博客?
第二种:把自己电脑上搭建好workpress站点的Docker容器迁移到购买的服务器上去
2、假如没有购买服务器
试试内网映射,把内网IP映射到公网,使公网也能访问所搭建的服务:实现内网映射的三种方式

//记一下我在部署过程中出现的bug

1.在输入sudo apt-get update后发现终端提示:

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

第一种解决:

ps -e | grep apt

在这里插入图片描述
然后执行:sudo kill 进程号
在这里插入图片描述
第二种解决:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock-frontend

2.安装完docker后,执行docker相关命令,出现

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied

原因: Docker进程使用Unix Socket而不是TCP端口,而默认情况下,Unix socket属于root用户,因此需要root权限才能访问。
解决方法:

sudo groupadd docker #添加docker用户组

sudo gpasswd -a $XXX docker #检测当前用户是否已经在docker用户组中,其中XXX为用户名。

sudo gpasswd -a $USER docker #将当前用户添加至docker用户组

newgrp docker #更新docker用户组
docker ps #测试docker命令是否可以使用sudo正常使用

3.Docker-compose up时报错:

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
in "./docker-compose.yml", line 2, column 9

解决:出现这个错误的是因为yaml格式不正确,谷歌定义的yaml格式太严格了,每个冒号后面都必须带有空格
错误
在这里插入图片描述

正确
在这里插入图片描述
4…执行sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
报错docker:

Error response from daemon: Conflict. The container name "/mysql" is already in use by container "eb4a52f08fed03d18354b9a2fec9e3a15eea96b5c7285ae7d6625e763e03e5af". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

解决办法:
查看 docker ps -a
在这里插入图片描述
看到之前运行docker容器还没有退出,导致出现容器重名情况。
使用下面命令,删除容器,

docker rm 1fabd37a07bf    //(镜像ID) 
docker rm a461cde5ec3f

重新执行命令启动即可。

以上若有存在错误的,欢迎交流,请多多指教!

发布了6 篇原创文章 · 获赞 0 · 访问量 167

猜你喜欢

转载自blog.csdn.net/weixin_46128342/article/details/105345734