docker安装WordPress
1.安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo service docker start
2.使用国内镜像仓库
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
!
3.下载镜像
docker pull wordpress:latest
docker pull mysql:5.6
运行服务
docker run --name wordpress1 \
-e WORDPRESS_DB_HOST=172.17.199.38:3306 \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=123456 \
-e WORDPRESS_DB_NAME=wp1 \
-p 8086:80 \
-d wordpress\
WORDPRESS_DB_HOST 数据库主机地址(默认为与其 link 的 mysql 容器的 IP 和 3306 端口:)
WORDPRESS_DB_USER 数据库用户名(默认为 root)
WORDPRESS_DB_PASSWORD 数据库密码(默认为与其 link 的 mysql 容器提供的 MYSQL_ROOT_PASSWORD 变量的值)
WORDPRESS_DB_NAME 数据库名(默认为 wordpress)
WORDPRESS_TABLE_PREFIX 数据库表名前缀(默认为空,您可以从该变量覆盖 wp-config.php 中的配置)
如果 WORDPRESS_DB_NAME 变量指定的数据库不存在时,那么 wordpress容器在启动时就会自动尝试创建该数据库,但是由 WORDPRESS_DB_USER变量指定的用户需要有创建数据库的权限。
这里的WORDPRESS_DB_HOST参数不能填写localhost,因为这样会重定向到WordPress镜像内部的localhost,而这个镜像中实际上没有安装MySQL。所以这里需要填写本机IP地址,才能正确访问到Docker外部的本机的数据库。
因此需要注意,如果使用外部数据库的话,数据库的用户需要具有外部IP的权限,因为这次不是通过本机回环地址访问。默认情况下MySQL安装时候的ROOT用户只允许本地登录,所以可能需要配置允许用户远程登录。
4.连接docker mysql启动
docker run --name wp_mysql56 \
-p 3307:3306 \
-v /data/docker/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD='123456' \
-d mysql:5.6
-d:后台运行容器
–-name wp_mysql56:指定容器的名字,不能重复,不指定随机生成
-v /data/docker/mysql:/var/lib/mysql: 添加目录映射, 容器中的/var/lib/mysql映射到主机的/data/docker/mysql
-e MYSQL_ROOT_PASSWORD=123456:指定容器的环境参数,此处初始化MySQL的root密码
-p 3307:3306:端口映射,这里将容器内的3306端口映射到宿主机的3307端口
mysql:镜像的名字,首先从本地加载,没有则从镜像仓库下载
查看mysql日志:
docker logs wp-mysql
5.启动wordpress容器
docker run --name wordpress2 \
--link wp_mysql56:mysql \
-v /data/docker/html:/var/www/html \
-p 888:80 \
-d wordpress
docker run :启动容器
-d:后台运行容器
–name wordpress2:指定容器的名字
–link wp_mysql56:mysql:容器关联,现在启动的容器内部可以通过mysql来访问wp_mysql56数据库的功能
-p 888:80:端口映射
wordpress:镜像的名字
进入容器:
docker exec -it wordpress2 /bin/bash
搭建完毕!