使用Docker Compose安装WordPress

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:
sudo apt remove docker docker-engine docker.io
  • 确保您拥有必要的软件包以允许使用Docker的存储库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
  • 添加Docker的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 验证GPG密钥的指纹:
sudo apt-key fingerprint 0EBFCD88

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

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存储库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 更新软件包索引并安装Docker CE:
sudo apt update
sudo apt install docker-ce
  • 将有限的Linux用户帐户添加到docker组:
sudo usermod -aG docker exampleuser

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

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

安装Docker Compose

  1. 下载最新版本的Docker Compose。检查版本页面并将下面命令中的1.21.2替换为标记最新版本的版本:
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. 设置文件权限:
sudo chmod +x /usr/local/bin/docker-compose

设置WordPress

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

docker-compose.yml

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容器:
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应用程序:

cd ~/my_wordpress/
docker-compose down

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

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

docker-compose down --volumes

更新WordPress

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

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》

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏素质云笔记

caffe镜像︱window10+docker+ubuntu14.04+caffe镜像的简单尝试

win10专业版可以利用Hyper-V开启docker,一般升级而来的都是家庭版,现在要升级到win10专业版, 需要产品秘钥。 github网址:h...

3349
来自专栏coding

docker初体验

1641
来自专栏友弟技术工作室

docker微服务初体验配置文件composedocker compose使用

9215
来自专栏运维一切

怎么用daocloud玩转自己的项目 原

##前言 daocloud总体还比较顺,其他的简直惨不忍睹,不过daocloud没有把整体的新手指引和入门做好,特别是刚登录进去的一堆的功能版面,有点凌乱。这些...

1594
来自专栏人工智能

在MacOs上用Docker开发

这是在开发者和运营团队之间的对话中经常听到的借口。即使使用复杂的工具,云中几乎没有限制的计算能力以及先进的持续集成工作流程,本地开发应用程序与在生产环境中运行应...

7630
来自专栏IT笔记

Docker学习之网络模式配置

以前搭建过虚拟机(vmware)的小伙伴,有可能知道vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)...

45610
来自专栏老司机的技术博客

docker实战入门(3)基本概念

Docker Client 客户端 / Docker Daemon 守护进程 docker是CS架构,Docker Daemon守护进程即为服务端 客户端向...

3815
来自专栏jeremy的技术点滴

试用docker功能

4017
来自专栏老司机的技术博客

docker实战入门(3)基本概念

docker的镜像是一个层叠的只读文件系统,最底端是一个引导文件系统(bootfs),这很像典型的linux的引导文件系统,docker用户几乎永远不会和引导文...

56910
来自专栏Java后端技术

Docker三十分钟快速入门(下)

  上篇文章我们进行了Docker的快速入门,基本命令的讲解,以及简单的实战,那么本篇我们就来实战一个真实的项目,看看怎么在产线上来通过容器技术来运行我们的项...

1002

扫码关注云+社区

领取腾讯云代金券