这篇文章将说明如何使用 KUSANAGI Runs on Docker (以下KUSANAGI RoD) 创建WordPress环境。
概要
透过Docker-machine,KUSANAGI RoD能运行超高速WordPress虚拟机KUSANAGI。
KUSANAGI RoD虽然能为WordPress环境提供超高速KUSANAGI虚拟机,但由于和还是测试版本,还会有些限制。
- ・系统要求
KUSANAGI RoD可对应nginx、php7、php5、MariaDB。
今后将会对应Apache2(httpd)及hhvm。 - ・kusanagi程式命令
不能使用kusanagi程式命令
kusanagi provision 的设定和bcache/fcache 的on/off是根据docker-compose.yml的環境変数而指定。 - ・SSL设定
不能使用Let’s Encrypt 的SSL服务。
今后将会对应SSL的设定。
安装
为了使用KUSANAGI RoD ,您需要准备Docker、Docker-machine、Docker-compose。
以下将说明安装的方法。
Docker
您可以参考以下的链接,安装Docker在Windows、Mac、Linux等。
Docker machine
参考以下链接,安装Docker-machine。
Docker Compose
参考以下链接,安装Docker-Compse 。
- ・Docker Compose
- ・在Mac OS X上进行安装
- ・在ubuntu上进行安装
如果在Windows上已经安装了Docker ToolBox的话,Docker-Compose已经安装完成。
创建 Docker-machine
Docker-machine能在Windows、Mac、Linux上进行安装,或是使用VirtualBox ,云服务上的(Microsoft Azure、AWS EC2 等)创建的docker-machine上都能使用Docker。
VirtualBox
参考如何在本地 VM上使用Docker Machine ,在VirtualBox 上创建docker-machine。
根据下图显示,我们创建Docker-machine并取名为kusanagi-machine。
# docker-machine create --driver virtualbox --virtualbox-memory=8192 --virtualbox-cpu-count=2 kusanagi-machine
输入以下的程式命令确认Docker-machine创建完成。
# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
kusanagi-machine * virtualbox Running tcp://192.168.99.100:2376 v1.11.1
# docker-machine env kusanagi-machine
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/kusanagi-machine"
export DOCKER_MACHINE_NAME="kusanagi-machine"
# Run this command to configure your shell:
Azure
参考使用Docker机和Azure 驱动 ,在Microsoft Azure 上创建docker-machine。
根据下图显示,我们创建docker-machine并取名为kusanagi-azure
您可以指定数据库的地区并指定Standart_D1为虚拟机配置。
# docker-machine create -d azure --azure-ssh-user rod \
--azure-subscription-id <Your AZURE_SUBSCRIPTION_ID> \
--azure-location "Japan East" \
--azure-size "Standard_D1" \
--azure-open-port 80 \
kusanagi-azure
你会被定期要求用户认证,请打开网页及输入下面表示的认证码(XXXXXXXX)。
(kusanagi-azure) Microsoft Azure: To sign in, use a web browser to open the page https://aka.ms/devicelogin. Enter the code XXXXXXXXX to authenticate.
根据下图输入,您可确认docker machine创建成功。
# docker-machine ls kusanagi-azure
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
kusanagi-azure - azure Running tcp://XXX.XXX.XXX.XXX:2376 v1.11.1
# docker-machine env kusanagi-azure
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://XXX.XXX.XXX.XXX:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/kusanagi-azure"
export DOCKER_MACHINE_NAME="kusanagi-azure"
# Run this command to configure your shell:
# eval $(docker-machine env kusanagi-azure)
使用Docker-compose 创建 KUSANAGI RoD
接下来我们将使用docker-compose ,在Docker-machine上创建KUSANAGI RoD。
- (1) 请从GitHub下载kusanagi-docker 。
# git clone https://github.com/prime-strategy/kusanagi-docker.git
# cd kusanagi-docker
# ls -A
.git LICENSE README.md
- (2) 如README.md 、创建docker-compose.yml 。
如下图,由nginx-1.10.0-1和php-7.0.6 构成。# cat docker-compose.yml version: '2' services: kusanagi-data: container_name: kusanagi-data image: busybox restart: always stdin_open: true tty: true volumes: - /var/lib/mysql - /etc/nginx/conf.d - /etc/httpd/conf.d - /etc/kusanagi.d - /home/kusanagi command: /bin/sh kusanagi-nginx: container_name: kusanagi-nginx image: primestrategy/kusanagi-nginx:1.10.0-1 environment: PROFILE: kusanagi FQDN: kusanagi.example.jp WPLANG: ja BCACHE: "off" FCACHE: "off" volumes_from: - kusanagi-data links: - kusanagi-php7:php - kusanagi-mariadb:mysql ports: - "80:80" - "443:443" kusanagi-mariadb: container_name: kusanagi-mariadb image: mariadb:10.0.24 environment: MYSQL_ROOT_PASSWORD: my-secret-pw MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_DATABASE: wordpress volumes_from: - kusanagi-data kusanagi-php7: container_name: kusanagi-php7 image: primestrategy/kusanagi-php7:7.0.6-1 links: - kusanagi-mariadb:mysql volumes_from: - kusanagi-data
- (3) 变更设定
修正docker-compose.yml ,environment entry里变更環境变数。- ・kusanagi-nginx
項目 説明 PROFILE kusanagi provision 的引数里所指定的PROFILE名 FQDN kusanagi provision 执行時所指定的host名 WPLANG kusanagi provision 执行时所使用的语言。你可以指定 ja(日本語) 或 en(英語)。 BCACHE 不论bcache是否使用,从 “on” 切换至 “off” 。 FCACHE 不论fcache是否使用,从 “on” 切换至 “off” 。 - ・kusanagi-mariadb
項目 説明 MYSQL_ROOT_PASSWORD MySQL的root用户的密码 MYSQL_USER WordPress里所使用用户名 MYSQL_PASSWORD WordPress里所使用的密码 MYSQL_DATABASE WordPress里所使用的数据库 - (4) 创建 Docker 环境
使用docker-machine , 为了使用Docker/Docker-compose 而设定(环境変数)构成。# eval $(docker-machine env kusanagi-azure)
- (5) 使用docker-compose.yml ,透过docker-machine 启动 docker
# docker-compose -p kusanagi-azure up # docker-compose -p kusanagi-azure ps Name Command State Ports ---------------------------------------------------------------------------------------------------- kusanagi-data /bin/sh Up kusanagi-mariadb /docker-entrypoint.sh mysqld Up 3306/tcp kusanagi-nginx /docker-entrypoint.sh /usr ... Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp kusanagi-php7 php-fpm Up 9000/tcp
WordPress 設定
docker-compose.yml 内的环境変数FQDN里指定host名,打开浏览器,照着通常的WordPress的初期设定进行设定。
这个时候,根据以下显示设定数据库。
項目 | 説明 |
---|---|
数据库名 | MYSQL_DATABASE 所指定的文字列。上记例为wordpress |
用户名 | MYSQL_USER 所指定的文字列。上记例为user |
密码 | MYSQL_PASSWORD 所指定的文字列。上记例为password |
数据库的host名 | 登录kusanagi-nginx:上的links,mysql的host名。上记例为mysql |
表前缀 | 你可任意输入和设定。默认设定为wp_ |