GVKun编程网logo

Docker 中配置 WordPress(docker部署wordpress)

2

这篇文章主要围绕Docker中配置WordPress和docker部署wordpress展开,旨在为您提供一份详细的参考资料。我们将全面介绍Docker中配置WordPress的优缺点,解答docke

这篇文章主要围绕Docker 中配置 WordPressdocker部署wordpress展开,旨在为您提供一份详细的参考资料。我们将全面介绍Docker 中配置 WordPress的优缺点,解答docker部署wordpress的相关问题,同时也会为您带来010.Docker Compose 构建 WordPress 实战、24.docker 部署 wordPress、31. docker swarm 通过 service 部署 wordpress、Apache2 无法确定服务器的域名(Docker-Compose: Wordpress)的实用方法。

本文目录一览:

Docker 中配置 WordPress(docker部署wordpress)

Docker 中配置 WordPress(docker部署wordpress)

首先创建 docker 容器,将容器的 80 端口映射到主机的 8080 端口

sudo docker pull ubuntu:16.04
sudo docker run -dit --name=wp --restart=always -p 8080:80 ubuntu:16.04

然后进入容器,安装和配置必备软件

sudo docker attach wp

apt-get update && apt-get upgrade -y
apt-get install nginx -y
apt-get install php -y
apt-get install mysql-server
usermod -d /var/lib/mysql/ mysql        # change default login directory
apt-get install php-mysql -y

service nginx start
service php7.0-fpm start
service mysql start

配置 Nginx 站点

cd /etc/nginx/sites-available
vi wp

...

cd /etc/nginx/sites-enabled
ln -s ../sites-available/wp wp

nginx -s reload

Nginx 配置文件的内容如下:root 指向 wordpress 的解压文件夹

server {
        listen 80;
        # server_name _;

        root /www/wordpress;
        index index.php index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

下载 WordPress,解压到自定义目录,设置 wordpress 文件夹权限

mkdir www
cd www

apt-get install wget
wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz
tar -xvf wordpress-4.7.4-zh_CN.tar.gz

chown -R www-data wordpress

创建 wordpress 数据库

service mysql start
mysql -u root -p

mysql> create database wordpress

打开浏览器访问主机的 8080 端口,按网页提示设置数据库登录用户名和密码

http://www.yourdomain.com:8080/wp-admin/install.php

在~/.bashrc 文件末尾添加如下几行,让服务能随容器自动启动

service mysql start
service php7.0-fpm start
service nginx start

导出和备份 docker 文件

sudo docker commit wp wordpress:1.0
sudo docker save -o wordpress_v10.tar wordpress:1.0
tar -zcvf wordpress_v10.tgz wordpress_v10.tar
rm wordpress_v10.tar

以后每次更改或更新 WordPress 后,做个导出备份,就可以随时迁移了。

也可以在 crontab 中设置一个脚本,每天 / 每周定期导出备份,这样就可以随时恢复或迁移了。

010.Docker Compose 构建 WordPress 实战

010.Docker Compose 构建 WordPress 实战

一 前期规划

类型
版本
备注
WordPress 镜像
wordpress:latest
 
MySQL 数据库
5.7
 
Docker 已安装,参考《002.Docker 版本及安装》。
Docker Compose 已安装,参考《009.Docker Compose 基础使用》。

二 正式构建

2.1 创建目录

  1 root@docker01:~# mkdir my_wordpress
  2 root@docker01:~# mkdir /db_data			#创建用于存储MySQL的独立路径
 

2.2 创建 Docker Compose

  1 root@docker01:~# cd my_wordpress/
  2 root@docker01:~/my_wordpress# vi docker-compose.yml
  3 version: ''3.3''
  4 services:
  5    db:
  6      image: mysql:5.7
  7      volumes:
  8        - /db_data:/var/lib/mysql
  9      restart: always
 10      environment:
 11        MYSQL_ROOT_PASSWORD: somewordpress
 12        MYSQL_DATABASE: wordpress
 13        MYSQL_USER: wordpress
 14        MYSQL_PASSWORD: wordpress
 15    wordpress:
 16      depends_on:
 17        - db
 18      image: wordpress:latest
 19      ports:
 20        - "8000:80"
 21      restart: always
 22      environment:
 23        WORDPRESS_DB_HOST: db:3306
 24        WORDPRESS_DB_USER: wordpress
 25        WORDPRESS_DB_PASSWORD: wordpress
 26 
 27 volumes:
 28     db_data:
 

2.3 开始构建

  1 root@docker01:~/my_wordpress# docker-compose up -d

三 确认验证

3.1 容器确认

  1 root@docker01:~# docker ps
86
  1 root@docker01:~# docker-compose images
  2 root@docker01:~# docker-compose ps
 
87

3.2 浏览器访问

http://172.24.8.111:8000
88
 

24.docker 部署 wordPress

24.docker 部署 wordPress

1. 拉取远程 MysqL 和 wordpress 镜像 并 启动起来 使用 

  docker pull MysqL:5.7.27

  docker pull wordpress

2. 创建MysqL 的 container  具体创建容器时的参数可以访问 https://hub.docker.com/_/mysql

  不需要 端口映射 因为 不需要外部访问

  docker run -d --name MysqL -v MysqL-data:/var/lib/MysqL -e MysqL_ROOT_PASSWORD=root  -e MysqL_DATABASE=wordpress MysqL:5.7.27

  

3. 创建 wordpress 的 container  具体创建容器时的参数可以访问 https://hub.docker.com/_/wordpress

  docker run -d -e wordpress_DB_HOST=MysqL:3306 --link MysqL -p 8888:80 wordpress

  浏览器访问 ip:8888 即可

遇到的问题

  如果 docker log MysqL 出现

  [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800

  1 . sudo find / -name MysqL-data

  

  2 . sudo rm -rf  /var/lib/docker/volumes/MysqL-data/_data/*

  即可

<style></style> <style></style>

31. docker swarm 通过 service 部署 wordpress

31. docker swarm 通过 service 部署 wordpress

1. 创建 一个 overlay 的网络 driver

  docker network create -d overlay demo

  查看网络列表

    docker network ls

2. 创建mysql 的服务

  docker service create --name mysql --env MYSQL_ROOT_PASSWORD=root --env MYSQL_DATABASE=wordpress --network demo --mount type=volume,source=mysql-data,destination=/var/lib/mysql mysql:5.7.27

  其中

    --mount (类似与 volume)  type=volume (mount的类型为 volume),source=mysql-data (本地存储数据的位置在 mysql-data内)  ,destination=/var/lib/mysql(service 内 存储数据的位置在 /var/lib/mysql)

  查看 mysql 镜像  (发现mysql 可拓展 并且 运行在本地 docker-host 上)

    docker service ls

    docker service ps mysql

3. 创建 wordpress 的 service

  docker service create --name wordpress -p 80:80 --network demo --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql wordpress

  查看 wordpress 镜像  (发现 wordpress 可拓展 并且 运行在本地 docker-host 上)

    docker service ls

    docker service ps wordpress

  查看 docker-host 的 ip 地址 (wordpress 在哪台机器上 就访问 那台机器的ip 地址即可)

  访问 192.168.205.10  填写一些基本配置

4. 此时发现 使用 docker-node1 的 ip 和 docker-node2 的 ip 也能访问 wordpress

  查看 docker-node1 的网络  和 docker-node2 的网络 发现 demo 的 overlay 网络 会通过 swarm 自动同步过去  

Apache2 无法确定服务器的域名(Docker-Compose: Wordpress)

Apache2 无法确定服务器的域名(Docker-Compose: Wordpress)

如何解决Apache2 无法确定服务器的域名(Docker-Compose: Wordpress)?

我正在尝试使用 docker compose 设置学习环境 (wordpress),当我运行我的撰写文件时,我从 Apache 收到以下消息:

AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 192.168.80.3。全局设置“ServerName”指令以抑制此消息

每次我运行 compose 时,我都会得到一个不同的 IP 来访问我的 wordpress。根据我所看到的 here,我应该使用指令“主机名”传递域名。

当我执行此操作时,我收到与上述相同的消息,但 IP 为:127.0.0.1。我检查了 wordpress 图像的 /etc/hosts,那里确实有 localhost 条目,但是当我在浏览器中输入这个 IP 或“localhost”时,我什么也没得到。知道如何解决这个问题吗?这是我的撰写文件:

version: "3.3"
services:
    db:
        container_name: wordpress_db
        image: MysqL:5.7
        restart: always
        volumes:
            - /media/mjgoncalves/9e8c57d5-0fca-4e64-9adb-673a13616728/development/docker/wordpress/frescorestaurante/MysqL:/var/lib/MysqL
        ports:
            - 18766:3306
        environment:
            MysqL_ROOT_PASSWORD: ${MysqL_ROOT_PASSWORD}
            MysqL_DATABASE: ${MysqL_DATABASE}
            MysqL_USER: ${MysqL_USER}
            MysqL_PASSWORD: ${MysqL_PASSWORD}
    wordpress:
        container_name: local_wordpress
        image: wordpress:latest
        hostname: localhost
        restart: always
        ports: 
            - 8000:80
        depends_on:
        - db
        environment:
            wordpress_DB_HOST: ${wordpress_DB_HOST}
            wordpress_DB_USER: ${MysqL_USER}
            wordpress_DB_PASSWORD: ${MysqL_PASSWORD}
            wordpress_DB_NAME: ${MysqL_DATABASE}
    PHPmyadmin:
        container_name: PHPmyadmin
        image: PHPmyadmin/PHPmyadmin:latest
        hostname: localhost
        restart: always
        ports:
            - 9000:80
        depends_on:
        - db
        - wordpress
        environment:
            PMA_HOST: db
            MysqL_ROOT_PASSWORD: ${MysqL_ROOT_PASSWORD}
            DOCKER_COMPOSE_YML_LOCATION: ${PWD}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于Docker 中配置 WordPressdocker部署wordpress的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于010.Docker Compose 构建 WordPress 实战、24.docker 部署 wordPress、31. docker swarm 通过 service 部署 wordpress、Apache2 无法确定服务器的域名(Docker-Compose: Wordpress)的相关知识,请在本站寻找。

本文标签: