開発環境ができた!
今回作成したファイルなどはこちらからどうぞ
https://github.com/dsrice/base_docker/tree/step1
はじめに
いろいろありましたが、
まず、Windows10 Proにアップグレードしました。
PCがあげる悲鳴がここ1年きになっているところではありますが、
Macに買い替えるにはいろいろとお金が・・・・
ということでアップグレードしました!!
サクッとHyper-Vを有効にして、
Docker Desctop on Windowsをインストールして
docker-compose upしたら何事もなくコンテナとの共有など成功!
なんでやねん!Vagrantに何が起こってるんだ・・・orz
ちなみになぞのフォルダは管理者権限のコマンドプロンプトからでも消せません・・・・
mysqlとかのDBサーバを立てるときとかにつかうか
ホストOSに直接いれてもいいけど、
たまにDBの切り替えとかしたいときとかこれからたくさんあるだろうし
このままでOKですな!
手順
*この方法をやるにはWindows10 Proが必要です。
Windows10 Homeではできませんのご了承ください。
手順1 Hyper-Vを有効にする
手順2 Docker Desctop on Windowsをインストールする
手順3 Docker環境のための整備
手順1 Hyper-Vを有効にする
Hyper-Vとは、Windows環境で仮想マシンを作成することができるものです。
Hyper-VはWindows Proである必要があります。
Hyper-Vのみをインストールする方法はありませんので注意してください。
①Windowsアイコンを右クリックして表示されるメニューの「アプリと機能」をクリックする
②表示されたウインドウの右側の「プログラムと機能」をクリックする
③左側にある「Windowsの機能の有効化または無効化」をクリックする
④表示されたポップアップからHyper-Vを探してチェックボックスにチェックをつける
⑤チェックとつけたら「OK」ボタンをクリックする。
PCの再起動を促されます。有効にするのに必要ですので必ず実行してください。
手順2 Docker Desktop on Windowsをインストールする
①以下のURLにアクセスします。
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
②「Get Docker」をクリックします。
クリックするとexeファイルのダウンロードが始まります。
③ダウンロードしたexeファイルを実行してください。
表示された内容に従ってインストールをします。
インストールを終えるとPCの再起動になります。
再起動すると、Docker Desktop on Windowsが起動時に立ち上がるようになります。
アイコンは上の図の左側にあるようなクジラのようなものになります。
タスクバーの右側から展開すると起動状態を確認できます。
手順3 Docker環境のための整備
djangoやangularまで話をするとまだまだ長くなってしまうので
ここではmysqlとphpmyadminのみの環境でDockerが使えるようになったかを
確認するところまでにします。
近いうちにDjangoやAngularの話を書こうかと思います。
①作業ディレクトリを用意しましょう。
場所はどこでもOKです。
ただ、Docker関連はコマンドプロンプトからコマンドを実行する必要があります。
パスを覚えさすなり、移動させやすいパスにするなど工夫が必要です。
②作業ディレクトリ内の構成を用意します。
フォルダ、ファイルの説明
contensフォルダ
Dockerの構成などの情報をまとめるためのフォルダです。
今後の展開も踏まえてさらにmysql用にフォルダを切っています。
Dockerfile
拡張子がないですが今回作成するコンテナは最初に構成する情報をまとめたものです。mysqlのVersion upするときなどはこのファイルの変更が必要です。
chownを書いていますが、なくても動くかもしれないです。
ただ、権限不足などのエラーが出る際はあったほうがいいと思います。
my.conf
mysqlの設定をコンテナの外に出したものです。
このようにしている理由は話が長くなるので今回は保留にします。
今はこういうものだと思ってもらえれば幸いです。
内容は、mysqlで設定に記載するmy.confと同じです。
特別docker用のものはありません。
[mysql]
# 文字コードの設定
default-character-set = utf8mb4
[mysqld]
# 文字コード/照合順序の設定
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# デフォルト認証プラグインの設定
default-authentication-plugin = mysql_native_password
explicit-defaults-for-timestamp = 1 # テーブルにTimeStamp型のカラムをもつ場合、推奨
# 実行ログの設定
general-log = 1 # 実行したクエリの全ての履歴が記録される(defaultではOFFになっているらしい)
general-log-file=/var/log/mysql/mysqld.log # ログの出力先
# エラーログの設定
log-error = /var/log/mysql/mysql-error.log
# スロークエリログの設定
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 5.0
log_queries_not_using_indexes = 0
[client]
# 文字コードの設定
default-character-set = utf8mb4
docker-compose.yml
docker-composeコマンドで対応する内容になります。
内容の説明は後日にします。(これだけでも1記事かけるので)
注意点としては、portsのところです。
ymlファイルですのでdbがmysqlのコンテナ情報、
phpmyadminがphpmyadminのコンテナ情報になります。
portsの情報は ホストOS : ゲストOS のポート転送になります。
私の環境はホストOS内にmysqlをインストールしているため
ポートの3306はホストOSのmysqlがすでに使用しています。
同じポートを指定しようとするとdockerのmysqlが立ち上がらなくなります。
それを避けるためにポート転送を宣言しました。
不要な方は3306にしてもらって構いません。
大事なことはホストOS上で対象ポートを使用していないことです。
③コマンドプロンプトからDockerを起動します。
コマンドプロンプトに起動して、
まず、用意した作業ディレクトリに移動します。
次に
「docker-compose build」
を実行します。
このコマンドは初回時やDockerfileの内容を変更したときに使用します。
このコマンドでコンテナイメージを作成しますのでDocker Hubに上げたい方は
利用が増えると思います。
「docker-compose up」を実行するとコンテナが起動します。
初回起動時はmysqlの初期化などが走りますのですこし時間がかかります。
コマンドプロンプトの動きが止まったらホストOSのブラウザから
にアクセスします。phpmyadminの画面が表示されたら成功です。
ちなみにphpmyadminでなくてもアクセス可能です。
ツールを使う際はポート指定に注意してください。
長くなりましたが、今日は以上です。
予定では、djangoやangular用のコンテナを追加して、
Dockerで用意したファイルのあれこれを話そうかと思います。
今回作成したファイルなどはこちらからどうぞ
https://github.com/dsrice/base_docker/tree/step1