1.安装mysql服务
由于用到mysql数据库服务,我们先下载mysql镜像:
docker pull mysql
创建目录:
mkdir /usr/local/mysql-normal/data
mkdir /usr/local/mysql-normal/conf
vim /usr/local/mysql-normal/conf/mysql.cnf
[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
secure-file-priv= NULL
symbolic-links=0
lower_case_table_names=1
!includedir /etc/mysql/conf.d/
创建mysql容器并后台运行,指定数据库密码是123456。-e 指定环境变量:
docker run -itd -p 3306:3306 --name mysqld -v /usr/local/mysql-normal/conf/mysql.cnf:/etc/mysql/my.cnf -v /usr/local/mysql-normal/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --privileged=true mysql:latest --character-set-server=utf8
--name:mysql 容器运行实例名mysqld
-v:挂载目录
-e:指定环境变量
开启远程访问:
docker exec -it mysqld bash
mysql -u root -p
123456
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
2.使用官方的wordpress
拉取镜像:
docker pull wordpress
创建wordpress容器应用并后台运行:
docker run --name wordpress --link mysqld:mysql -p 8001:80 --privileged=true -d wordpress:latest
--name:wordpress 容器运行实例名
--link:内部的mysql依赖于容器mysqld运行
-p:外部端口8001映射到容器内部80
-d:后台运行
然后就可以在浏览器通过 http://host-ip:8001访问站点了。
如果想使用外部数据库的话,可以通过上述环境变量设置对应数据库的连接方式:
docker run --name wordpress -e WORDPRESS_DB_HOST=10.1.2.3:3306 -e WORDPRESS_DB_USER=XXX -e WORDPRESS_DB_PASSWORD=XXX -d wordpress:latest
--name:wordpress 容器运行实例名
-e:环境变量
-d:后台运行
环境变量:
WORDPRESS_DB_HOST
数据库主机地址(默认为与其 link的 mysql 容器的 IP 和 3306 端口 :3306)WORDPRESS_DB_USER
数据库用户名(默认为 root)WORDPRESS_DB_PASSWORD
数据库密码(默认为与其 link 的 mysql 容器提供的 MYSQL_ROOT_PASSWORD 变量的值)WORDPRESS_DB_NAME
数据库名(默认为 wordpress)WORDPRESS_TABLE_PREFIX
数据库表名前缀(默认为空,可以从该变量覆盖 wp-config.php 中的配置)
访问http://192.168.106.128:8001:
设置完成之后,
访问首页地址:http://192.168.106.128:8001/
登陆地址:http://192.168.106.128:8001/wp-login.php
汉化:
在wordpress中文网,下载对应源码包,解压缩:
在wordpress>>wp-content>>languages,将文件夹压缩,传输到linux根目录:
将压缩包复制到容器内(应该在操作完毕,删除对应的文件languages.tar.gz):
docker cp languages.tar.gz wordpress:lang.tar.gz
languages.tar.gz 压缩包文件
wordpress:lang.tar.gz 第一个为容器名,第二个为复制到容器的文件位置
如果是容器传输文件到本地的话,将第一个位置和第二个位置交换一下就行。
进入容器内部:
[root@localhost conf]# docker exec -it wordpress bash
root@434532728fbf:/var/www/html# cd /
解压缩到指定位置(应该在操作完毕,删除对应的文件lang.tar.gz):
tar -zxvf /lang.tar.gz /var/www/html/wp-content
修改项目根目录wp-config.php:
root@434532728fbf:/var/www/html/wp-content# cd ../
root@434532728fbf:/var/www/html# ls
index.php readme.html wp-admin wp-comments-post.php wp-config.php wp-cron.php wp-links-opml.php wp-login.php wp-settings.php wp-trackback.php
license.txt wp-activate.php wp-blog-header.php wp-config-sample.php wp-content wp-includes wp-load.php wp-mail.php wp-signup.php xmlrpc.php
root@434532728fbf:/var/www/html# vim wp-config.php
在 define('WP_DEBUG', false); 后面添加:
define('WP_ZH_CN_ICP_NUM',true);
define('WPLANG','zh_CN');
退出容器,重启容器:
docker restart wordpress
强制刷新浏览器页面清除缓存,观察是否成功:
如果没有成功,可能需要多进行几次重启容器。
以上方式,在删除了容器实例之后,将导致汉化无效。
汉化持久化:
在wordpress中文网,下载对应源码包,解压缩;
修改项目根目录wp-config.php:
在 define('WP_DEBUG', false); 后面添加:
define('WP_ZH_CN_ICP_NUM',true);
define('WPLANG','zh_CN');
define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);
重新压缩,将压缩包复制到linux,解压到/usr/local/wordpress:
tar -zxvf /wordpress.tar.gz /usr/local/wordpress
将目录挂载到容器 /var/www/html 运行:
docker run --name wordpress --link mysqld:mysql -p 8001:80 -v /usr/local/wordpress:/var/www/html --privileged=true -d wordpress:latest
汉化完成。
错误处理:
docker 容器提示没安装vim:
apt-get update
apt-get install vim