この記事は未完成です。
誤認のまま書いた記事なので参照しないでください
削除以外に非公開にすることができないので編集が終わるまでこのような状態になっています
ご了承ください
[お詫び] 僕が利用しているPCがmac book airのため、Windowsの操作感がお伝えできません。申し訳ございません。
また、理解していない状態で見切り発射(投稿)してしまい、誤解を産むようなことをしてしまい申し訳ございませんでした。
本題に入りまして
~~前回の予告で「phpを動かしてみたい」と言ったな、あれは嘘だ。
と、ネタもここまでにしておいて、~~dockerの基礎であり、下絵になる部分のdocker imageの準備方法は(僕が調べた限りでは)4つもあって、どれもdocker使用時の方法として紹介されてるんですよ。
どの方法を選んでもdockerを準備できるんだから当たり前なんですが… ややこしい
今回はその4つの方法と簡単な紹介をしたいと思います。
#docker imageの準備しよう
docker:
##docker imageの準備する4つの方法
1, docker Hubからコマンドを使ってimageを1つずつ準備する
2, docker Fileを用いてカスタムされたdocker imageの準備する
3, docker Composeを用いてdocker imageをまとめて操作する
4, docker imageを自作する
4つ書き出してみましたが、4番目は難しく、自分で書く必要もなさそうだったので説明は割愛します。
1〜3はステップアップ方式になっていて
1は単純に素のdocker imageを利用してコンテナを作る方法
2はdocker Fileを用いてdocker imageを自分好みにカスタマイズしたコンテナを作る方法
3はdocker Composeを用いてdocker imageを1つのコンテナにまとめて操作する方法
となっています。
docker公式では1つのイメージ(docker image)に、1つのコンテナを推奨しています。しかし、開発に必要なイメージが1つとは限りません。複数ある場合は、起動または停止のコマンドを操作毎に複数回打たなくてはいけません。それを解決してくれるのが複数のdocker imageを1つのコンテナにまとめて操作できるdocker Composeとなります。
docker Hubからコマンドを拾ってきてコンテナを1つずつ準備する
1, docker Hubにアクセスします
2, 上部、検索欄から必要なソフトを探しましょう
3, 当てはまるソフトを選択しましょう
4, 右側にCopy and paste to pull this imageと書いていますので、この下のコードをコピーします
1行目が最短、2行目がオプション増し増しのコマンドです。
いろいろ調べてみたんですがもっと長くできるかもです。
docker pull [イメージ名]
docker pull [イメージ名]:[タグ名]
5, ターミナル(Mac)にコピーしたコードをペースとしてエンター
6, 必要なイメージが揃うまで2〜5を繰り返す
docker image
でpullしたイメージが揃ったか確認
7, コンテナを起動する
>docker run [コンテナ名]
docker run [オプション] –name [コンテナ名] [イメージ名]:[タグ名] [コンテナ起動直後に実施するコマンド]
docker Fileを用いてカスタムされたdocker imageの準備する
いろいろ読んでみましたが、正直、この方法が一番意味わからなかったです。が
最も自由で、カスタム性が高いものだと思います。
1つのファイル(docker File)内でターミナルのコマンドや、docker独自のコマンドも使え、docker Fileを展開することでdocker imageを作れます。
しかも、docker Fileはコピーして共有することができるので、1人でもdocker Fileで環境を作ることができる人がいれば、そのファイルを共有してチーム全員がカスタムされた開発環境を作ることができます。すごい!!
完全には理解できなかったけどdocker Fileすごい! っと思った記事:
VS CodeでDocker開発コンテナを便利に使おう
最後にまとめて参考にしたサイトが載っています。
docker Composeを作成し、docker imageを自動生成する
docker Composeの便利なところはymlファイルにコードを書き、決められたコマンドを打つだけでdocker Fileが自動生成され、そのままdocker imageまで作ってくれるところです。しかも更新も可能らしい
version: '3.8'
services:
php:
#コメントアウト
build: ./base
ports:
- 8080:8000
volumes:
- ./php
コード | 説明 | 例 |
---|---|---|
version | dockerのバージョンを指定 version: '3'だと3.0と判断されるらしい |
version: '3.8' |
services | dockerから受けたいサービスを下記に記す | services: |
php | phpを指定するってことだと思います 書き方が違う人もいるので変数みたいな感じ? |
php: |
build | docker-compose.ymlから見て docker Fileをどこに作るかパスを指定する |
build: ./base |
ports | ホスト:コンテナの関係でポートの番号を書く http://localhost:8080/ が自分のローカル開発環境 |
ports: - 8080:8000 |
volumes | よく分かってないけどマウントするために書く ファイルの読み込み書き込みに必要らしい |
volumes: - ./php |
セキュリティー上ポート番号がホストとゲストで違うことやdocker Fileの保存先とマウント先が違うことが大事らしいのですが、僕の知識では説明できないので、違うフォルダにしてた方がいいということだけ覚えていたらいいと思います。
あとはターミナルでこれを打つだけ
docker-compose up -d
siteファイルの中で作っていたとすると
siteファイル
├ docker-compose.yml
├ baseファイル
│ └ Dockerfile
└ phpファイル
├ index.php
└ 制作物はphpファイルの中に
こんな感じになると思います
###参考にしたサイト
Compose ファイル | Docker ドキュメント
DockerでPHPを実行するコンテナを作る
image - 入門 Docker
VS CodeでDocker開発コンテナを便利に使おう
Docker入門(第六回)〜Docker Compose〜1 ~ 6までありますが続いてるので全て読むことをオススメします。が、今回の範囲だけでいいなら6だけでも伝わります
読みやすかった記事をあげてみました。人により表現方法が多少、異なるのでサラッと読んで、読めそうと思ったものをしっかり理解してください。
##初心者がdockerでphpの開発環境を整える 一覧
初心者がdockerでphpの開発環境を整える#1 [dockerとは?]
初心者がdockerでphpの開発環境を整える#2 [dockerをインストールする]
初心者がdockerでphpの開発環境を整える#3 [docker imageの準備方法]
初心者がdockerでphpの開発環境を整える#4 [レンタルサーバーでdockerが使えない?]