在本教程中,我们将使用多个docker容器来安装WordPress。 Wordpress本身在一个容器和另一个容器中的MariaDB数据库。 然后我们将在主机上安装Nginx作为WordPress容器的反向代理。
Docker是一个开源项目,使开发人员和sysadmin更容易在Docker容器内创建,部署和运行分布式应用程序。 Docker是一个操作系统级虚拟化,您可以为应用程序创建与Docker一起运行的应用程序的系统隔离。 您可以在服务器内创建数百个码头容器,数量取决于您的机器硬件。
前提条件
- Ubuntu 15.04 - x86_64
- 根权限
- 码头知识
第1步 - 安装Docker
在此步骤中,我们将更新Ubuntu存储库,然后安装最新版本的docker.io。
成为root用户的下一步:
sudo -s
更新Ubuntu存储库:
apt-get update
现在使用apt命令安装Docker软件包:
apt-get install docker.io
安装完成后,启动docker并将其添加到系统启动时使用systemctl命令运行:
systemctl start docker
systemctl enable docker
接下来,使用docker命令检查Docker版本:
docker version
docker run hello-world
Docker安装完成。
第2步 - 设置MariaDB容器
在此步骤中,我们将从docker注册表下载一个新的MariaDB映像,并根据该映像创建一个新的容器。 我们将为WordPress安装配置一个新的数据库和用户。
使用Docker pull命令将Docker MariaDB映像下载到系统:
docker pull mariadb
现在,您可以使用以下命令查看新的Docker MariaDB映像:
docker images
接下来,从WordPress安装的MariaDB映像创建一个新的容器。 在创建新容器之前,为WordPress数据,数据库目录和WordPress代码目录创建一个新的目录。
mkdir ~/wordpress
mkdir -p ~/wordpress/database
mkdir -p ~/wordpress/html
现在使用以下命令创建名为“wordpressdb”的新的MariaDB容器:
docker run -e MYSQL_ROOT_PASSWORD=aqwe123 -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=wpuser@ -e MYSQL_DATABASE=wordpress_db -v /root/wordpress/database:/var/lib/mysql --name wordpressdb -d mariadb
如果没有错误,您可以看到以下结果:
参数说明:
- MYSQL_ROOT_PASSWORD =配置MySQL root用户的密码。
- MYSQL_USER =为WordPress数据库创建一个新的MySQL用户'wpuser'。
- MYSQL_PASSWORD =为用户'wpuser'设置密码'wpuser @'。
- MYSQL_DATABASE =为名称为“wordpress_db”的wordpress安装创建一个新数据库。
- -v / root / wordpress / database:/ varlib / mysql =链接的数据库目录到容器上的mysql目录'/ var / lib / mysql',以确保数据持久性。
已经创建了MariaDBriadb容器,现在检查新用户和数据库的WordPress安装,以确保顶部没有错误的命令。
从主机,请使用docker命令检查wordpressdb容器的IP地址:
docker inspect -f '{{ .NetworkSettings.IPAddress }}' wordpressdb
接下来,使用主机系统的mysql命令连接到wordpressdb容器:
mysql -u wpuser -h 172.17.0.2 -p
TYPE PASSWORD: wpuser@
检查新数据库'wordpress_db':
show databases;
所有结果:
新的Docker容器,MySQL用户和WordPress的MySQL数据库已经成功创建。
第3步 - 设置Wordpress容器
创建数据库容器后,使用docker pull命令下载最新的WordPress Docker映像:
docker pull wordpress:latest
当下载完成后,从名称为“wpcontainer”的图像创建一个新的容器。
docker run -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=wpuser@ -e WORDPRESS_DB_NAME=wordpress_db -p 8081:80 -v /root/wordpress/html:/var/www/html --link wordpressdb:mysql --name wpcontainer -d wordpress
您可以获得如下结果,或者您可以检查名为“wpcontainer”的新容器是否已创建。
参数:
- WORDPRESS_DB_USER =为wordpress数据库定义数据库用户'wpuser'。
- WORDPRESS_DB_PASSWORD =密码'wpuser @'为数据库用户'wpuser'。
- WORDPRESS_DB_NAME =在第2步创建的数据库“wordpress_db”的名称。
- -p 8081:80 =将容器上的端口80映射到主机端口8081。
- -v / root / wordpress / html:/ var / www / html =将容器上的web根目录'/ var / www / html'链接到本地主机目录'wordpress / html'。
- --link wordpressdb:mysql =将mariadb容器'wordpressdb'链接到新的连续wordpress'wpcontainer'。
要查看WordPress容器运行,您可以使用主机IP和端口8081上的curl命令检查它。
curl -I 192.168.43.99:8081
你会看到结果:
- Web服务器是Apache,在Debian上运行。
- PHP 5.6正在容器中运行。
- 您会看到重定向到WordPresss安装。
第4步 - 安装和配置Nginx作为反向代理
在此步骤中,我们将在主机系统上安装Nginx Web服务器。 我们将在端口8081上配置Nginx作为Docker容器'wpcontainer'的反向代理。
在主机系统上使用apt命令安装Nginx:
apt-get install nginx
接下来,转到Nginx目录并为WordPress容器创建一个新的虚拟主机配置。
cd /etc/nginx/sites-available/
vim wordpress
粘贴虚拟主机配置如下:
server {
listen 80;
server_name wordpress-docker.co www.wordpress-docker.co;
location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
保存文件并退出。
现在,激活新的WordPress虚拟主机并删除默认的虚拟主机配置。
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-available/default
rm -f /etc/nginx/sites-enabled/default
重新启动Nginx Web服务器:
systemctl restart nginx
第5步 - WordPress安装
打开您的网络浏览器并访问nginx配置“www.wordpress-docker.co”上的域名,您将被重定向到WordPress安装。
输入您的网站标题,管理员用户名和密码,然后单击安装WordPress。
现在点击“登录Wordpress”并填写您上面选择的用户名和密码,您将看到WordPress仪表板。
或者您可以在下面看到WordPress主页:
具有MariaDB容器和WordPress容器的WordPress安装已成功。