Docker #23 MariaDB連携 (4)
環境
Windows 10 1909 (18363.959)
Docker Toolbox : Docker version 19.03.1
コンテナ CentOS:8.2.2004
Apache 2.4.37
PHP 7.2.24
Docker Compose?
https://docs.docker.jp/compose/overview.html
Compose = 複数のコンテナを定義し実行する Docker アプリケーションのためのツール
使ってみる
これまで作成した3つのコンテナ "my-mariadb1", "my-php1", "my-phpmyadmin1" を自動的に起動するcomposeを作成する。
1) コンテナ停止
前回作成したコンテナが起動中なので停止しておく。
docker stop my-phpmyadmin1 docker stop my-php1 docker stop my-mariadb1
2) 基準フォルダ作成
composeを作成する為の基準フォルダを作成
C:\Users\user\compose\test を作成した。
C:\Users\user\compose\test を作成した。
3) 必要なファイルをコピー
前回使用したphpフォルダもコンテナには必要となるので、フォルダ(C:\Users\user\php)を、
今回作成したtestフォルダ配下へコピー
今回作成したtestフォルダ配下へコピー
4) docker-compose.ymlファイル作成
testフォルダ直下に docker-compose.yml ファイルを新規作成し以下内容を記載。(UTF-8)
my-mariadb:
image: mariadb:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=docker
- MYSQL_USER=docker
- MYSQL_PASSWORD=docker
ports:
- "3306:3306"
my-php:
image: my-php
ports:
- "80:80"
volumes:
- /c/Users/sudoy/Documents/docker/techpjin-lamp/php/public-html:/var/www/html
links:
- my-mariadb
my-phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
links:
- "my-mariadb:db"
5) compose実行
testフォルダへ移動し "docker-compose up" を実行
→ エラー
→ ymlファイルはインデントが重要 (インデントで階層を認識する)
インデントにはタブは使えず、スペース(何個のスペースか?は定義がなさそうだが2つが基本?)を使う
正しい docker-compose.yml ファイル:
再度 docker-dompose up
→ エラー
16行目のパス、サンプルのまま書いてしまった。
自分の環境のパスに書き換える。
再度 docker-dompose up
ブラウザで http://192.168.99.102 を表示 → phpinfo が表示される → 成功!
ブラウザで http://192.168.99.102/db.php を表示 → 何も表示されない → たぶん成功!
とりあえず Dockerであそぶ を参考にした学習は終了とする
→ エラー
$ docker-compose up
ERROR: In file '.\docker-compose.yml', service 'image' must be a mapping not a string.
→ ymlファイルはインデントが重要 (インデントで階層を認識する)
インデントにはタブは使えず、スペース(何個のスペースか?は定義がなさそうだが2つが基本?)を使う
正しい docker-compose.yml ファイル:
my-mariadb:
image: mariadb:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=docker
- MYSQL_USER=docker
- MYSQL_PASSWORD=docker
ports:
- "3306:3306"
my-php:
image: my-php
ports:
- "80:80"
volumes:
- /c/Users/sudoy/Documents/docker/techpjin-lamp/php/public-html:/var/www/html
links:
- my-mariadb
my-phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
links:
- "my-mariadb:db"
再度 docker-dompose up
→ エラー
$ docker-compose up Creating test_my-mariadb_1 ... done Creating test_my-php_1 ... error Creating test_my-phpmyadmin_1 ... ERROR: for test_my-php_1 Cannot start service my-php: b"error while creating mount source path '/c/Users/sudoy/Documents/docker/techpjin-lamp/php/pubCreating test_my-phpmyadmin_1 ... done ERROR: for my-php Cannot start service my-php: b"error while creating mount source path '/c/Users/sudoy/Documents/docker/techpjin-lamp/php/public-html': mkdir /c/Users/sudoy: protocol error" ERROR: Encountered errors while bringing up the project.
16行目のパス、サンプルのまま書いてしまった。
自分の環境のパスに書き換える。
volumes: - /c/Users/user/compose/test/php/public-html:/var/www/html
再度 docker-dompose up
ブラウザで http://192.168.99.102 を表示 → phpinfo が表示される → 成功!
ブラウザで http://192.168.99.102/db.php を表示 → 何も表示されない → たぶん成功!
とりあえず Dockerであそぶ を参考にした学習は終了とする
Docker学習
0 件のコメント:
コメントを投稿