今でも企業でプライベートクラウドというと、VM Wareをぶっこんで仮想計算機を立ち上げていると思います。
しかし、巷ではDockerというミドルウェアが大流行。
VMWare(仮想計算機)がシステム上でハードウェアをエミュレートしてOS自体を複数立ち上げる。
Dockerはプロセスなので、OSは基本的に元々のパソコンと同じ(でもLinuxのインターフェースっぽい)
これのなにがいいかというと!
今までプログラミングなどでテスト環境を作ることに多くの人々が苦労してきた。
例えばPythonの2.xと3.xとか、LAMP環境だけどMySQLのバージョンが違うとか、LAMPにCAKE PHP入れた、Laravel入れた、Code Igniter入れた、Composerでいろんなパッケージを導入しまくった。
新しく開発する時には「きれいな環境が欲しい!」
それを実現してくれるのがDocker
Dockerはコンテナという概念なんだけど、要するにOS上のセットアップした環境を管理していると思えばそんなに外れていないんじゃないですかね。
過去の設定は設定でコンテナとして保管。
新しくコンテナ作る時には、なにをインストールするかを定義する。
えらそーなことを書いていますが、Dockerについてはほとんど知りません。
昔はDockerの中に環境構築はできるけど、ローカルの環境と切り離されているのでものすごく使いにくいと誤解していました。今はDocker内のファイルとローカルのファイルの対応付けができるので、定義を外部から簡単に変更できるので、とても使い勝手がいいですぅ。
そしてユーザーが多いので、以下のブログを見ればLaravelを動かして開発するまでの環境構築ができました。
https://zenn.dev/kafeine/articles/d3d60d983555d5
こういう記事は消さないで欲しいなぁ。
しょっちゅう使うコマンド
docker止めるのは、コマンドライン画面でControl+C
dockerスタートはdockerを入れたフォルダー内で、docker-compose up
dockerに入る(SSHみたいなものでしょうか)
docker exec -it local_web bash
local_webはdocker_compose.yml内のcontainer_nameで定義した名称です。
バカみたいな注意事項です。
Dockerいじっている間はDocker Desktopを立ち上げていないといけません。
本来はDocker Desktop内のシェルから作業するのかな?