Docker部署_docker部署网站

Docker部署_docker部署网站前言我们都爱用WordPress,(几乎)一行代码都不用写,就能得到一个好看、实用的动态网站。这东西用来敷衍帮助各种找你写奇怪小网站的朋友再好不过了。通常,帮朋友部署WordPress的这个场景下,你可以找朋友开一台新的服务器,初始化一套LAMP,直接把WordPress给wget进去,就可以在你的浏览器里完成配置了。有时候,比如您的朋友使用阿里云、百度云或是其他比较大的云服务商,您甚至可以直接初始化一个WordPress应用镜像,直接在浏览器里开始设置。但是,前两天我需要

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

前言

我们都爱用 WordPress,(几乎)一行代码都不用写,就能得到一个好看、实用的动态网站。

这东西用来敷衍帮助各种找你写奇怪小网站的朋友再好不过了。通常,帮朋友部署 WordPress 的这个场景下,你可以找朋友开一台新的服务器,初始化一套 LAMP,直接把 WordPress 给 wget 进去,就可以在你的浏览器里完成配置了。 有时候,比如您的朋友使用阿里云、百度云或是其他比较大的云服务商,您甚至可以直接初始化一个 WordPress 应用镜像,直接在浏览器里开始设置。

但是,前两天我需要在自己的服务器上部署一个 WordPress 服务。我这样的蒟蒻当然是无缘使用世界上最好的编程语言—— PHP 的啦。没有 PHP,还部署个屁的 WordPress。装一个 PHP 吧,平时也不用,还增加了安全风险,不划算。

还是有一台全新的 LAMP 服务器好啊,但不可能再买一台服务器吧。所以就想到了—— Docker,用容器去把它装起来就好了嘛。

想到就动手做,接下来我们就看看怎么用 Docker 部署 WordPress。

所以,现在,您的服务器或个人电脑上应该已经安装好了 Docker,在绝大多数非 Windows 的常规系统下,安装 Docker 就是几条简单的命令。

在继续之前……

根据法律规定,任何探讨容器的文章都必须附上满载集装箱的集装箱船的图片,正如下图所示:

Docker部署_docker部署网站

(这个传统是从 IBM Developer 上的这篇文章 学的,咱也不知道为什么,但遵纪守法的优秀共青团员当然是要遵守规定的啦。)

拉取镜像

WordPress 这么常用的东西当然是有现成的镜像的,我们就不用自己去建了。

果断拉一个 wordpress 镜像:

1

Jetbrains全家桶1年46,售后保障稳定

$ docker pull wordpress:latest

然后,您应该知道,WordPress 需要 MySQL。

这里我们有两种选择,一是使用宿主机或是其他任何服务器上的 MySQL 数据库;二是用一个 MySQL Docker 镜像。为了方便,同时也多练习 Docker 的使用,我们干脆再拉一个 mysql 镜像,让整套服务完全在 docker 里运行:

1
$ docker pull mysql:latest

注意,这篇文章写在 2020 年春,所以这里 mysql:latest 是 MySQL V8.0.19 

启动服务

废话不多说,有了镜像,我们直接开服务:

1
2
$ docker run -d --privileged=true --name Mysql_Test -v /data/mysql:/var/lib/mysql -e MYSQL_DATABASE=wordpress -e MYSQL_ROOT_PASSWORD=233333  mysql
$ docker run -d --name WordPress_Test -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=233333 -e WORDPRESS_DB_USER=root -p 2020:80 --link Mysql_Test:mysql wordpress

OK,这就是 Docker 的魔力,不用装 PHP,不用为了安全悉心考虑、大肆设置,前前后后就 4 个命令搞的!(当然,我只是开一个简单的小服务,基本没人用,所以也就几乎没有安全风险,但您在部署的时候还是要花点时间认真考虑安全问题的)

接下来就是在您的浏览器访问 http://xxx:2020/wp-admin/index.php,完成 “著名的” wordpress 5分钟安装了!

但是……

当你满心欢喜打开您的新网站时,,你会发现,wordpress 提醒你:连不上 mysql。(我忘截图了,它会写一堆英文告诉你这个事,你能看懂)

Google 会告诉您,这个问题是由于 mysql 8 的默认用户认证方式改了,wordpress 不认识。要解决不难,打开 mysql 设置一下,把认证方式改成 WordPress 认识的样子就行:

1
$ docker exec -it Mysql_Test mysql -p

执行 mysql 命令:

1
2
3
4
mysql> use mysql;
mysql> select host, user, plugin from user;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '233333';
mysql> select host, user, plugin from user;

我们把 root 的 plugin 从 caching_sha2_password 改成了 mysql_native_password,这样就没问题了。

然后再次浏览器访问 http://xxx:2020/wp-admin/index.php,这次就应该是 “著名的” wordpress 5分钟安装了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213493.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Docker 拉取 oracle 11g镜像配置

    Docker 拉取 oracle 11g镜像配置话不多说开始记录docker拉取阿里的oracle11g镜像并进行配置,用pl/sql可以登录为最终结果navicat连接是在最后一步参考:https://blog.csdn.net/zwx521515/article/details/77982884但是根据这个进行配置会有一些问题,所以写这篇记录一下,希望可以帮助其他人开始:①、开始拉取镜像-执行命令:…

  • docker命令详解「建议收藏」

    docker命令详解「建议收藏」镜像下载搜索镜像dockersearch+镜像名字#dockersearchcentos从DockerHub中搜索符合条件的镜像下载镜像#dockerpull+镜像名字#dockerpullcentos查看镜像#dockerimages开启网络转发功能(默认为开启状态)若无开启,可以使用以下命令开启#vim/etc/sysctl…

  • CICD – docker私有仓库

    CICD – docker私有仓库1、创建私有仓库dockerpullregistrydockerrun-d-v/opt/registory:/var/lib/registory-p5000:5000–restart=always–nameregistryregistry2、查看私有仓库curlhttp://47.99.211.128:5000/v2/_catalog#域名解析后…

  • docker下载安装教程_安卓安装docker

    docker下载安装教程_安卓安装docker前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

  • docker镜像操作_docker导出容器为镜像

    docker镜像操作_docker导出容器为镜像零.docker常用命令#镜像名版本标签镜像id创建时间镜像大小REPOSITORYTAGIMAGEIDCREATEDSIZEhello-worldlatestfce289

  • docker端口映射成功 不可用_docker启动后访问拒绝连接

    docker端口映射成功 不可用_docker启动后访问拒绝连接情境描述创建一个docker容器,并进行端口映射。容器启动后,在部署容器的主机上可以访问映射端口,但是其他主机无法访问。问题排查出现上述情况,应是请求被拦截。出现该问题的可能是由于firewall配置异常、ip转发关闭、iptables服务拦截了请求排查firewall(1)使用firewall-cmd–state查看防火墙运行情况如果防火墙处于notrunning,则可以排除…

    2022年10月17日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号