Centos7.4下用Docker-Compose部署WordPress
2017-11-07 00:19
615 查看
前言
最近在学习Docker相关知识,通过阅读
第一本Docker书后,正想着手实战用一下这个技术,但又不太敢直接在项目环境下动手。考虑足足三秒钟之后决定买个阿里云ECS搭建一个属于自己的基于
Docker的
WordPress博客Daniel Fu's hut传送门。
本博客搭建环境(阿里云ECS的购买与基本的安全组配置等工作在文中省略,各位看官可自行研究):
阿里云ECS
Centos 7.4
部署工具:
Docker
Docker Compose(Compose工具比起单纯的Dockerfile来更为便利、更易管理)
WordPress和
MySql5.7(运行在Docker容器中)
现在逐个讲解下如何安装:
Docker:
根据官方文档,Docker分为
Community Edition (CE)和
Enterprise Edition (EE)两个版本,我们作为学习和个人使用,当然选择的是
Community Edition (CE),安装步骤如下:
// 步骤1 - 为了确保没有安装过老的Docker版本,先将已经安装的Docker从宿主机上删除(如果是在使用中的正式服务器,请谨慎执行此步): $ sudo yum remove docker \ docker-common \ docker-selinux \ docker-engine // 步骤2 - 安装Docker所需的包: $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 // 步骤3 - 配置到稳定的Docker CE安装库: $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo // 步骤4 - 安装Docker CE: $ sudo yum install docker-ce // 步骤5 - 启动Docker服务: $ sudo systemctl start docker // 步骤6 - 测试是否安装成功: // 可以通过查看版本的形式确认安装是否成功: $ docker --version // 也可以通过直接运行hello-world容器来确认安装是否成功: $ docker run hello-world
Docker Compose:
为了便于使用,我们需要安装Docker Compose来管理和运行
Docker容器,
Docker Compose的安装步骤如下:
// 步骤1 - 下载安装文件: $ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose // 步骤2 - 给已下载的安装文件添加执行权限: $ sudo chmod +x /usr/bin/docker-compose // 步骤3 - 测试是否安装成功: $ docker-compose --version
部署WordPress和MySql容器:
先创建一个工作目录,并创建名为docker-compose.yml的文件:
$ cd /usr/ $ sudo mkdir myblog && cd myblog $ sudo vim docker-compose.yml
将如下内容保存在
docker-compose.yml文件中:
version: '3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: your-mysql-root-password MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - wp_site:/var/www/html ports: - "80:80" - "443:443" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: db_data: wp_site:
关于
Composer所使用的的
yml文件的语法,请参考官方文档,这里就不一一解释了(因为我自己也是刚入门,只会几个基本的用法)。
和官方给的Demo不同,上述
yml文件中,我在
volumes中添加了
wp_site的卷,并将其挂在到
wordpress容器中,这样,当容器被停止或者删除后,重新安装并启动
wordpress容器时,已安装的
plugins也可以直接继续使用,而不是重新安装。
此时,我们直接使用
docker-compose命令启动容器:
$ sudo docker-compose up -d
启动之后,我们就可以通过 http://ecs-ip (因为我们绑定的是宿主机的80端口) 来访问
WordPress(如果不能访问,请查看阿里云安全组中,是否已经开启了你所指定端口的公网访问权限,一般80端口是默认开启的)。
如果需要关闭服务,则执行如下命令:
$ sudo docker-compose down
开启你的博客之旅:
我们的WordPress博客已经搭建完成,通过访问后台管理页面来初始化网站。然后找一个喜欢的主题,安装好必要的插件,我们就可以在一个属于自己的博客网站上写下自己的第一篇博客。
分享一下:这是我第一次用
WordPress,还有很多东西需要慢慢摸索。目前我安装了
Jetpack插件和
WP Editor.MD插件,选用的主题是
Sirius免费版。
遇到的挫折:
第一次安装时,当使用
sudo docker-compose up -d命令启动容器后,提示容器启动正常,但是无法访问网站,此时通过
sudo docker logs xxx_wordpress_1(xxx_wordpress_1以实际生产的容器名称为准)查看日志,看到日志中不断提示数据库无法连接的错误。花了好几个小时排查,总算找到问题所在,是因为以前在机器上写
Docker相关的测试例子的时候,宿主机上设置了几个全局变量(如:ServerName、ServerHost、UserName等,可通过
env命令查看当前系统环境变量),这些全局变量导致了
wordpress容器无法连接到
db容器。这个小插曲告诉我们,不要随便在宿主机上设置环境变量,如果必须设置,也应该做好命名和管理工作。
参考文档:
Install Docker
Install Docker Compose
Deploy Wordpress With Docker Compose
相关文章推荐
- Centos7.4下用Docker-Compose部署WordPress(续)-服务器端用Nginx作为反向代理并添加SSL证书(阿里云免费DV证书)
- CentOS 7.4 yum方式安装LAMP环境,并部署WordPress,使用XCache优化性能
- 阿里云上Docker Compose部署wordpress
- CentOS7.4 部署TomCat 使用MySQL
- Docker-compose部署Django+MySQL环境
- Docker部署WordPress LNMP(Nginx PHP MySQL)环境实践
- 使用docker-compose 大杀器来部署服务 上
- Centos 7部署docker环境、基本命令使用及简单实战
- centos7上使用docker部署Jenkins
- centos7 安装docker-compose
- centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本
- centos 安装部署docker与局域网主机相通详细配置
- centos7 部署docker、shipyard
- cobbler一键部署centos7.4(脚本)
- Docker部署WordPress LNMP(Nginx PHP MySQL)环境实践
- centos 安装并操作docker 同步文件夹 并部署tomcat
- Docker部署Rancher Server-centos7
- 使用docker-compose 大杀器来部署服务 上
- Dockerfile分离构建LNMP环境部署wordpress
- CentOS 7安装和部署Docker