前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Docker Compose安装WordPress

使用Docker Compose安装WordPress

原创
作者头像
楠宝宝
发布2018-08-17 16:34:35
5.2K0
发布2018-08-17 16:34:35
举报

Docker和Docker Compose是什么?

Docker是一个开放源代码软件项目,让应用程序布署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。Docker利用Linux核心中的资源分脱机制,例如cgroups,以及Linux核心名字空间(name space),来创建独立的软件容器(containers)。这可以在单一Linux实体下运作,避免启动一个虚拟机造成的额外负担。Linux核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括进程树、网络、用户ID与挂载文件系统,而核心的cgroup提供资源隔离,包括CPU、存储器、block I/O与网络。从0.9版本起,Dockers在使用抽象虚拟是经由libvirt的LXC与systemd - nspawn提供界面的基础上,开始包括libcontainer库做为以自己的方式开始直接使用由Linux核心提供的虚拟化的设施,依据行业分析公司“451研究”:“Dockers是有能力打包应用程序及其虚拟容器,可以在任何Linux服务器上运行的依赖性工具,这有助于实现灵活性和便携性,应用程序在任何地方都可以运行,无论是公有云、私有云、单机等。” 。

Docker Compose可以让用户在其它平台快速安装Docker,Swarm可以让Docker容器在集群中高效运转,而Compose可以让用户在集群中部署分布式应用。简单的说,Docker Compose属于一个“应用层”的服务,用户可以定义哪个容器组运行哪个应用,它支持动态改变应用,并在需要时扩展。

WordPress和MySQL的容器可以从Docker Hub以镜像的形式获得。Docker镜像是容器的静态快照,用于创建新的容器实例。

为什么使用Docker运行WordPress?

WordPress和MySQL镜像由各自的组织在Docker Hub上维护,使用它们具有以下优点:

  • 已经为您完成了软件的配置,这意味着您无需按照每个应用程序的分步过程来使它们在您的系统上运行。
  • 更新软件就像从Docker Hub下载最新镜像一样简单。
  • 镜像和容器是独立的,这意味着如果您决定将它们移除,它们很容易清理。

本教程需要一台已经设置好可以使用sudo命令的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器

安装

安装Docker

这些步骤使用官方Ubuntu存储库安装Docker Community Edition(CE)。要在其他发行版上安装,请参阅官方安装页面

  • 删除系统上可能存在的旧版Docker:
代码语言:javascript
复制
sudo apt remove docker docker-engine docker.io
  • 确保您拥有必要的软件包以允许使用Docker的存储库:
代码语言:javascript
复制
sudo apt install apt-transport-https ca-certificates curl software-properties-common
  • 添加Docker的GPG密钥:
代码语言:javascript
复制
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 验证GPG密钥的指纹:
代码语言:javascript
复制
sudo apt-key fingerprint 0EBFCD88

您应该看到类似于以下内容的输出:

代码语言:javascript
复制
pub4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uidDocker Release (CE deb) <docker@docker.com>
sub4096R/F273FCD8 2017-02-22
  • 添加stableDocker存储库:
代码语言:javascript
复制
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 更新软件包索引并安装Docker CE:
代码语言:javascript
复制
sudo apt update
sudo apt install docker-ce
  • 将有限的Linux用户帐户添加到docker组:
代码语言:javascript
复制
sudo usermod -aG docker exampleuser

您需要重新启动shell会话才能使此更改生效。

  • 通过运行内置的“Hello World”程序检查安装是否成功:
代码语言:javascript
复制
docker run hello-world

安装Docker Compose

  1. 下载最新版本的Docker Compose。检查版本页面并将下面命令中的1.21.2替换为标记最新版本的版本:
代码语言:javascript
复制
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  1. 设置文件权限:
代码语言:javascript
复制
sudo chmod +x /usr/local/bin/docker-compose

设置WordPress

  • 在主文件夹中创建一个新的目录my_wordpress,并使用cd进入:
代码语言:javascript
复制
mkdir ~/my_wordpress/
cd ~/my_wordpress/
  • 在此文件夹中创建名为docker-compose.yml的文件并添加以下内容。在WORDPRESS_DB_PASSWORDMYSQL_ROOT_PASSWORDMYSQL_PASSWORD环境选择设置您自己的密码。WORDPRESS_DB_PASSWORDMYSQL_PASSWORD的密码应该是相同的。

docker-compose.yml

代码语言:javascript
复制
version: '3.3'
​
services:
wordpress:
  depends_on:
 - db
  image: wordpress:latest
  volumes:
 - wordpress_files:/var/www/html
  ports:
 - "80:80"
  restart: always
  environment:
 WORDPRESS_DB_HOST: db:3306
 WORDPRESS_DB_USER: wordpress
 WORDPRESS_DB_PASSWORD: my_wordpress_db_password
​
db:
  image: mysql:5.7
  volumes:
 - db_data:/var/lib/mysql
  restart: always
  environment:
 MYSQL_ROOT_PASSWORD: my_db_root_password
 MYSQL_DATABASE: wordpress
 MYSQL_USER: wordpress
 MYSQL_PASSWORD: my_wordpress_db_password
volumes:
 wordpress_files:
 db_data:
  • my_wordpress目录中启动Docker容器:
代码语言:javascript
复制
docker-compose up -d
  • Docker容器需要一两分钟才能启动WordPress和MySQL。之后,您可以在Web浏览器中访问Linode的IP地址,然后您将被引导至WordPress设置表单。
  1. 您可以为WordPress网站设置域。

设置DNS记录后,还应在WordPress设置屏幕中将您的IP地址替换为您的域:

使用和维护

如果重新启动CVM,则无需手动启动容器,因为选项restart: always已分配给了docker-compose.yml文件中的服务。此选项告诉Docker Compose在服务器引导时自动启动服务。

要停止WordPress应用程序:

代码语言:javascript
复制
cd ~/my_wordpress/
docker-compose down

当Docker容器停止时,它也会被删除; 这就是Docker的设计工作方式。但是,您的WordPress文件和数据将被保留,因为docker-compose.yml文件已配置为为该数据创建持久命名卷。

如果要删除此数据并从WordPress站点重新开始,可以将--volumes标志添加到上一个命令。这将永久删除您到目前为止所做的WordPress帖子和自定义。

代码语言:javascript
复制
docker-compose down --volumes

更新WordPress

docker-compose.yml指定了WordPress镜像的最新版本,使用下面的命令可以很容易地更新你的WordPress版本:

代码语言:javascript
复制
docker-compose down
docker-compose pull && docker-compose up -d

更多docker使用方法可以参考下面的文章:

如何在UFW、FirewallD、IPTable为Docker Swarm集群配置防火墙

使用GitLab构建Docker镜像并托管

如何在Ubuntu上安装使用Docker

怎么样,学会了吗?快尝试购买一台服务器进行测试吧!或者直接在开发者实验室参加搭建 Docker 环境 课程,学习更快哦!更多Linux教程请前往腾讯云+社区学习更多知识。


参考文献:《Install WordPress with Docker Compose》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker和Docker Compose是什么?
  • 为什么使用Docker运行WordPress?
  • 安装
    • 安装Docker
      • 安装Docker Compose
      • 设置WordPress
      • 使用和维护
        • 更新WordPress
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档