GVKun编程网logo

创建 WordPress Docker 镜像(docker搭建wordpress)

17

在本文中,我们将带你了解创建WordPressDocker镜像在这篇文章中,我们将为您详细介绍创建WordPressDocker镜像的方方面面,并解答docker搭建wordpress常见的疑惑,同时

在本文中,我们将带你了解创建 WordPress Docker 镜像在这篇文章中,我们将为您详细介绍创建 WordPress Docker 镜像的方方面面,并解答docker搭建wordpress常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的24.docker 部署 wordPress、6.1 基于docker搭建wordpress、7.7 Docker Stack部署Wordpress、docker lnmp部署wordpress

本文目录一览:

创建 WordPress Docker 镜像(docker搭建wordpress)

创建 WordPress Docker 镜像(docker搭建wordpress)

github 地址  https://github.com/venizeng/wordpress

  1. fork Github

    1. https://github.com/venizeng/wordpress.git

  2. 修改 wp-config.php 中的数据库地址等

  3. docker build -t venizeng/wordpress .

  4. docker run --name wordpress -d -p 21000:80 venizeng/wordpress  /sbin/my_init



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>

6.1 基于docker搭建wordpress

6.1 基于docker搭建wordpress

创建一个mysql容器

docker run -d --name mysql -v mysqldata:/var/lib/mysql -e MYSQL_DATABASE=wp -e MYSQL_ROOT_PASSWORD=root mysql:5.7.22

创建一个wordpress容器

docker run --name wordpress --link mysql -d -p 8080:80 wordpress

然后即可通过访问 http://192.168.205.10:8080/ 来进行安装了

7.7 Docker Stack部署Wordpress

7.7 Docker Stack部署Wordpress

docker-compose.yml相关字段

  • ENTRYPOINT_MODE 有vip模式和dnssr模式,vip模式就是使用多个容器统一的虚拟ip,dnsrr就是使用真实的IP,然后轮询ip,默认使用vip模式
  • MODE 一种是global、一种是replicated,前者不支持横向扩展,后者支持。
  • PLACEMENT 指定容器部署的节点、操作系统等等。
  • RESOURCES 主要是做一些CPU、内存等资源的限制
  • RESTART_POLICY 用于设定容器自动重启的条件
  • update_config 用于更新时候的配置

使用docker-compose.yml在swarm上部署

version: ''3''
services:
  web:
    image: wordpress
    ports:
      - 8080:80
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_PASSWORD: root
    networks:
      - wordpress-overlay
    deploy:
      mode: replicated
      replicas: 3
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
      update_config:
        parallelism: 1
        delay: 10s
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
    volumes:
      - mysql-data:/var/lib/mysql
    networks:
      - wordpress-overlay
    deploy:
      mode: global
      placement:
        constraints:
          - node.role == manager
volumes:
  mysql-data:
networks:
  wordpress-overlay:
    driver: overlay

配置部署

docker stack deploy -c docker-compose.yml wordpress

查看分布

[vagrant@swarm-manager wordpress-overlay]$ docker stack services wordpress
ID NAME MODE REPLICAS IMAGE PORTS
gzhzyuo71ycz wordpress_web replicated 3/3 wordpress:latest *:8080->80/tcp
v2lsqkq0sjr3 wordpress_mysql global 1/1 mysql:5.7

使用如下三个链接都是可以访问的

http://192.168.205.10:8080
http://192.168.205.11:8080
http://192.168.205.12:8080

销毁stack

docker stack rm wordpress

docker lnmp部署wordpress

docker lnmp部署wordpress

#下载镜像准备
docker pull mysql:latest    #下载mysql镜像
docker pull richarvey/nginx-php-fpm:latest    #下载nginx-php-fpm镜像
docker image inspect mysql:latest |grep -i version  #查看仓库中最新mysql的版本

#自定义网络
docker network create lnmp    #创建专用网络
docker network ls        #查看网络信息

1、启动数据库容器,并创建库
docker run -itd --name lnmp_mysql --net lnmp -p 3306:3306 --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql --character-set-server=utf8
#创建一个lnmp_mysql数据库容器,将数据库数据目录做一个挂载,保证数据持久化
docker exec lnmp_mysql sh  -c ''exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e"create database wordpress"''
#进入容器创建一个wordpress数据库

2、启动一个nginx-php-fpm容器
mkdir -p /app/webroot
docker run -itd  --name lnmp_web  --net lnmp  -p 88:80  --mount type=bind,src=/app/webroot,dst=/var/www/html richarvey/nginx-php-fpm
echo "<?php phpinfo(); ?>" >/app/webroot/index.php
#lnmp_web容器数据挂载到本地/app/webroot/, 映射宿主机88端口,并做一个php测试页面,访问测试页面

 

 

 

3、下载解压wordpress
cd /app/webroot/    #进入网站的根目录
wget https://cn.wordpress.org/wordpress-5.1.2-zh_CN.tar.gz   #下载wordpress

#可下载5.3.2版本,服务器托管环境或香港机房比较好下载,公司网络下载经常中断
tar -xvf wordpress-5.1.2-zh_CN.tar.gz

4、浏览器访问wordpress安装
http://192.168.10.192:88/wordpress

 

 #数据库主机名直接写 数据库容器名称即可,跟lnmp_web在同一个网络, 会自动识别的

发现数据库报连接不上,原来是新版mysql要更改验证方式
docker exec -it lnmp_mysql bash
mysql -uroot -p
ALTER USER ''root''@''%'' IDENTIFIED WITH mysql_native_password BY ''123456'';
重新提交顺利安装~~~

 

 



我们今天的关于创建 WordPress Docker 镜像docker搭建wordpress的分享就到这里,谢谢您的阅读,如果想了解更多关于24.docker 部署 wordPress、6.1 基于docker搭建wordpress、7.7 Docker Stack部署Wordpress、docker lnmp部署wordpress的相关信息,可以在本站进行搜索。

本文标签: