这篇文章主要围绕Docker中配置WordPress和docker部署wordpress展开,旨在为您提供一份详细的参考资料。我们将全面介绍Docker中配置WordPress的优缺点,解答docke
这篇文章主要围绕Docker 中配置 WordPress和docker部署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)
- 010.Docker Compose 构建 WordPress 实战
- 24.docker 部署 wordPress
- 31. docker swarm 通过 service 部署 wordpress
- Apache2 无法确定服务器的域名(Docker-Compose: 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 实战
一 前期规划
类型
|
版本
|
备注
|
WordPress 镜像
|
wordpress:latest
|
|
MySQL 数据库
|
5.7
|
二 正式构建
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

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

3.2 浏览器访问

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
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)?
我正在尝试使用 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 中配置 WordPress和docker部署wordpress的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于010.Docker Compose 构建 WordPress 实战、24.docker 部署 wordPress、31. docker swarm 通过 service 部署 wordpress、Apache2 无法确定服务器的域名(Docker-Compose: Wordpress)的相关知识,请在本站寻找。
本文标签: