ベースのDocker ImageをRed Hat Container Catalog(RHCC)から取得する
信頼できるソース元であるRed Hat Container Catalog(RHCC)からベースとなるDocker Imageを取得します。
今回は勉強がてらWordPressのDocker ImageとMariaDBのDocker Imageを取得し、プロジェクト内で参照するよう設定してみたいと思います。
WordPressのDocker Imageを取得
Red Hat Container Catalog(RHCC)で「WordPress」を検索
色々なイメージがリストアップされている中から今回は「WordPress with Nginx and PHP7(bitnami/wordpress-nginx-php7
)」を選びました。
Registryはregistry.connect.redhat.comのようですね。
WordPress with Nginx and PHP7(registry.connect.redhat.com/bitnami/wordpress-nginx-php7
)」
Docker Imageはビルドする際に環境変数を引数に環境構築を行いますので、設定を確認します。
Overviewの「README & Configuration Options」を参考にすると
Variable | Description | Default |
---|---|---|
MARIADB_HOST | Hostname for MariaDB server. | mariadb |
MARIADB_PORT_NUMBER | Port used by MariaDB server. | 3306 |
WORDPRESS_DATABASE_NAME | Database name that WordPress will use to connect with the database. | bitnami_wordpress |
WORDPRESS_TABLE_PREFIX | Table prefix to use in WordPress. | wp_ |
WORDPRESS_DATABASE_USER | Database user that WordPress will use to connect with the database. | bn_wordpress |
WORDPRESS_DATABASE_PASSWORD | Database password that WordPress will use to connect with the database. | No defaults. |
ALLOW_EMPTY_PASSWORD | It can be used to allow blank passwords. | no |
MariaDBのDocker Imageを取得
Red Hat Container Catalog(RHCC)で「MariaDB」を検索
最新版は色々と泣かされそうなので「MariaDB 10.1(rhscl/mariadb-101-rhel7
)」を選びました。
こちらは配布されるRegistryが違うみたいですね。
MariaDB10.1(registry.access.redhat.com/rhscl/mariadb-101-rhel7
)
こちらも環境変数を確認しますが…なかなか見当たりません。
Tagsを選択し、最新TagをClickします。
DockerタブをClickするとここに環境変数のことが書いてあります。
Variable | Description | Note |
---|---|---|
MYSQL_USER | Database user name | |
MYSQL_PASSWORD | User's password | |
MYSQL_DATABASE | Name of the database to create | |
MYSQL_ROOT_PASSWORD | Password for the 'root' MySQL account | Optional |
ベースイメージをminishiftに登録する
情報も集まりましたのでminishiftにDocker ImageをPullします。
[tak@centos76 ~]$ minishift ssh
[docker@minishift ~]$ docker login registry.connect.redhat.com --username <username>
Password:<password>
Login Succeeded
[docker@minishift ~]$ docker search registry.connect.redhat.com/wordpress
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redhat.com registry.connect.redhat.com/bitnami/wordpress-apache-php5 This WordPress container solution is optim... 0
redhat.com registry.connect.redhat.com/bitnami/wordpress-apache-php7 This WordPress container solution is optim... 0
redhat.com registry.connect.redhat.com/bitnami/wordpress-nginx-php5 This WordPress container solution is optim... 0
redhat.com registry.connect.redhat.com/bitnami/wordpress-nginx-php7 This WordPress container solution is optim... 0
[docker@minishift ~]$ docker pull registry.connect.redhat.com/bitnami/wordpress-nginx-php7
Using default tag: latest
Trying to pull repository registry.connect.redhat.com/bitnami/wordpress-nginx-php7 ...
latest: Pulling from registry.connect.redhat.com/bitnami/wordpress-nginx-php7
367d84554057: Pull complete
:
119b0de383d9: Pull complete
Digest: sha256:7f9bef9632f2a9a87ff4c02ded5080d4048418d26913d3dacfb9cf1c6612ae04
Status: Downloaded newer image for registry.connect.redhat.com/bitnami/wordpress-nginx-php7:latest
[docker@minishift ~]$ exit
[tak@centos76 ~]$ oc import-image my-bitnami/wordpress-nginx-php7 --from=registry.connect.redhat.com/bitnami/wordpress-nginx-php7 --confirm
[docker@minishift ~]$ docker search registry.access.redhat.com/mariadb
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redhat.com registry.access.redhat.com/openshift3/mariadb-apb Ansible Playbook Bundle application defini... 0
redhat.com registry.access.redhat.com/rhosp12/openstack-mariadb Red Hat OpenStack Container image for open... 0
redhat.com registry.access.redhat.com/rhosp13/openstack-mariadb Red Hat OpenStack Container image for open... 0
redhat.com registry.access.redhat.com/rhosp14-beta/openstack-mariadb Red Hat OpenStack Beta Container image for... 0
redhat.com registry.access.redhat.com/rhscl/mariadb-100-rhel7 MariaDB 10.0 SQL database server 0
redhat.com registry.access.redhat.com/rhscl/mariadb-101-rhel7 MariaDB server 10.1 for OpenShift and gene... 0
redhat.com registry.access.redhat.com/rhscl/mariadb-102-rhel7 MariaDB is a multi-user, multi-threaded SQ... 0
[docker@minishift ~]$ docker pull registry.access.redhat.com/rhscl/mariadb-101-rhel7
Using default tag: latest
Trying to pull repository registry.access.redhat.com/rhscl/mariadb-101-rhel7 ...
latest: Pulling from registry.access.redhat.com/rhscl/mariadb-101-rhel7
23113ae36f8e: Pull complete
:
84c39a3a2476: Pull complete
sha256:eda05d7ccdd32f0993e880b8ee0d92bbd61abde6bb7450193fd4b67ea1eb0f1b
Status: Downloaded newer image for registry.access.redhat.com/rhscl/mariadb-101-rhel7:latest
[docker@minishift ~]$ exit
[tak@centos76 ~]$ oc import-image my-rhscl/mariadb-101-rhel7 --from=registry.access.redhat.com/rhscl/mariadb-101-rhel7 --confirm
念のため登録されているDocker Imageを確認しておきます。
[tak@centos76 ~]$ minishift ssh
Last login: Sat Dec 22 17:11:10 2018 from 192.168.42.1
[docker@minishift ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/openshift/origin-node v3.11.0 438d61da63d1 20 hours ago 1.16 GB
docker.io/openshift/origin-control-plane v3.11.0 00f980c345c1 20 hours ago 825 MB
docker.io/openshift/origin-hyperkube v3.11.0 d65ee3cc9874 20 hours ago 506 MB
docker.io/openshift/origin-haproxy-router v3.11.0 316c2621011d 20 hours ago 407 MB
docker.io/openshift/origin-pod v3.11.0 045ddf827c75 20 hours ago 258 MB
docker.io/openshift/origin-deployer v3.11.0 d05e619aac21 20 hours ago 380 MB
docker.io/openshift/origin-hypershift v3.11.0 a777d85d24b9 20 hours ago 546 MB
docker.io/openshift/origin-cli v3.11.0 83d7b0b2f011 20 hours ago 380 MB
172.30.1.1:5000/openshift/mariadb <none> 5e784880fd90 2 weeks ago 458 MB
registry.access.redhat.com/rhscl/mariadb-101-rhel7 latest a4deee8ed5a5 3 weeks ago 455 MB
registry.connect.redhat.com/bitnami/wordpress-nginx-php7 latest 2892cd4d344e 5 weeks ago 580 MB
docker.io/openshift/origin-web-console v3.11.0 be30b6cce5fa 2 months ago 339 MB
docker.io/openshift/origin-docker-registry v3.11.0 a0d5ad164395 2 months ago 305 MB
docker.io/openshift/origin-service-serving-cert-signer v3.11 47dadf9d43b6 2 months ago 276 MB
MariaDBのPod作成
minishiftのconsoleでプロジェクトに入ります。
OverviewのAdd to ProjectからDeploy Imageを選択します。
まずはMariaDBのImage Nameを入力し虫眼鏡ボタンをクリックします。
registry.access.redhat.com/rhscl/mariadb-101-rhel7
下部に表示された「Environment Variables」に先ほど調べた値を入力して行きます。
仮にこんな感じにしておきます(笑)
Variable | Description | Value |
---|---|---|
MYSQL_USER | Database user name | user |
MYSQL_PASSWORD | User's password | password |
MYSQL_DATABASE | Name of the database to create | wordpress_db |
MYSQL_ROOT_PASSWORD | Password for the 'root' MySQL account | root_password |
最後にDeployをクリックします。
DeployされるのをただじっとOverviewの画面で確認してるも良し
詳細を見るため#1をクリックしLogを表示するもよし
MariaDBのServiceの確認
Project内のPod同士で通信を行うにはServiceを利用します。
Applications>Servicesをクリックし確認すると1つ出来上がっています。
ここに表示されているHostnameが所謂サーバー名にあたります。
WordPressのPod作成
MariaDBと同じようにProject内でDeploy Imageを選択して
wordpressのImage Nameを入力し虫眼鏡ボタンをクリックします。
registry.connect.redhat.com/bitnami/wordpress-nginx-php7
下部に表示された「Environment Variables」に先ほどMariaDBで設定した値を入力して行きます。
Variable | Default | Value |
---|---|---|
MARIADB_HOST | mariadb | mariadb-101-rhel7.myproject.svc |
MARIADB_PORT_NUMBER | 3306 | ← |
WORDPRESS_DATABASE_NAME | bitnami_wordpress | wordpress_db |
WORDPRESS_TABLE_PREFIX | wp_ | ← |
WORDPRESS_DATABASE_USER | bn_wordpress | user |
WORDPRESS_DATABASE_PASSWORD | No defaults. | password |
ALLOW_EMPTY_PASSWORD | no | ← |
※←はDefault値を採用するのでEnvironment Variablesには未定義
ここは心配なのでログを確認します(笑)
ログが止まったと思ったら…minishiftがクラッシュ( ;∀;)
Console画面も表示できなくなってしまった(泣
$ minishift stop
$ minishift start
(-。-)y-゜゜゜
WordPress用にRouterを作成する
このままではWordPressにブラウザからアクセスできないのでRouterを作成します。
Applications>Routersをクリック
Nameにwordpress-rt
と入力し、
Serviceでwordpress-nginx-php7
を選択し、Createをクリック
Hostnameに表示されているURLがブラウザからアクセスするURLになります。
祝・WordPress+MariaDB!
URLをクリックするとWordPress画面が表示されました!
後からEnvironment Variablesを変えたくなったら
ブログ名が「USER'S BLOG」
「README & Configuration Options」をもう一度よく見ると環境変数ですね...
Variable | Description | Default |
---|---|---|
WORDPRESS_USERNAME | WordPress application username. | user |
WORDPRESS_PASSWORD | WordPress application password. | bitnami |
WORDPRESS_EMAIL | WordPress application email. | user@example.com |
WORDPRESS_FIRST_NAME | WordPress user first name. | FirstName |
WORDPRESS_LAST_NAME | WordPress user last name. | LastName |
WORDPRESS_BLOG_NAME | WordPress blog name. Default | User's blog |
簡単にブログ名とかユーザを変更してみましょう。
WordPressのPodのLast Version(画像では#3)をクリック
Environmentタブをクリック
Environment variables can be edited on deployment config wordpress-nginx-php7. のリンクをクリック
Add Valueを設定する環境変数分クリックして枠を追加し投入します。
設定が終わったら[Save]をクリックするとDeployが走りなおします。(#3から#4へ)
これで変わる予定だったのですが、またしてもminishiftクラッシュ( ;∀;)
(-。-)y-゜゜゜
不思議なことにWordPressはF5で更新できて「TAK'S BLOG]に代わってました!
ただし、一緒に指定したWordPressのユーザは反映できていない中途半端な状態
一度マシンをRebootして再度Deployですな...。PCのメモリ追加したら治るかな!?