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 件のコメント:
コメントを投稿