🏠 ホーム
nginx
apache
ネットワーク
Linux
根本の仕組み
クラウド

Docker入門

  インフラ >     クラウド >  

今回はDockerの話です。
Dockerはコンテナ仮想化と言われ、仮想マシンより、リソースが少なくて済み
直接ここのアプリケーションをインストールするより、柔軟に対応できます。
と、言われても未経験もしくはこれからプログラマーになりたい方にとっては
今いちピンとこないと思うので、簡単に説明すると
簡単に開発環境を整えられるツールみたいなものと認識しておけばいいかと
思います。

開発環境の例を挙げると
PHP 7.2
Nginx 1.14

の開発環境をDockerなしで構築したいばあい。それぞれのNginxのバージョンを
揃えるなり、PHPのモジュールを揃えるなりしてインストールしなければいけません。
でもDockerが使える場合は適切なdockerイメージをダウンロードして
docker-compose up
で開発環境が揃う所は便利です。

DockerはPHP,Nginxだけではなく、RubyやPython、MySQLなどのDBもサポートしていて
CentOSなどのOSもコンテナに入れることが可能です。
VmwareなどでCentOSを入れた場合はコンフィグファイルなど、CentOSの
ターミナルに入って変更しないといけないのですが、
Dockerの場合はvolumesの設定をしておけば、そのホストのパスのファイルが
コンテナのファイルになるので、CentOSのターミナルに入らずにホストのパスの
ファイルの設定がコンテナの設定に反映されます。
その部分でも便利ですが、馴染みのない人にとっては何のことかサッパリだと思うので、
ymlの設定を全て理解する必要は今の時点では必要ないかと思います。

とりあえず実際にDockerを動かす所まで実践していきましょう。
今回は単純にPHPとNginxを入れて動く所までします。

まずはDockerがインストールできるように前段階として周辺部分をインストールします。

OSはUbuntuです。WindowsでもDockerの最近サポートしてる記事が見かけますが、
まだ現場の周りでWindows上でDockerを動かしている所を見たことがないので、
LinuxであるUbuntu上でDockerをインストールしています。
インストールコマンドは説明欄に記載しておきます。

エラーが出てつまってしまったので、ネット検索して解決策をさがします。

pythonのrequestのupgradeしてエラーの解消しました。

就職した会社の現場で開発をする時大抵の場合はすでにDockerイメージを作った人がいて、
その人が作成したイメージをコンテナに入れるだけの作業です。

コンテナが動いてからの不具合はそのイメージを作成した担当者に
不具合の内容を伝えて直してもらうのが一番の近道かと思います。
なぜなら、DockerはPHP,Nginxのみのイメージ、
MySQLを追加してイメージを再作成するなど
好きなようにように作れてしまうので、逆にその人ならではの設定になってしまい
作成した本人に直接聞いたほうが早いケースが多くなります。

例えば、volumesの設定をせずにイメージを作成してた場合は
nginxの設定を変更したい場合は設定してからイメージを再作成する
といった作業が必要になってきます。

Dockerのデメリットについて
先程の例でも挙げたように、Dockerのイメージ作成者が好きなように作成できてしまうので
作成の仕方によってはその作成した人に頼らざるを得なくなる部分があります。
DockerはVMware,Virtual machineに比べてリソースは使わないですが、それでも、コンテナに
MySQL、CentOSなどを入れるとリソースを大きく消費して、PCのメモリが8GBぐらいでは
足りなくなってきます。
といってもPHP,Nginxだけであればリソース消費は少ないですが、
PHP,Nginxだけのために時間をかけてDockerのインストールが必要なのか
って事になってきます。

なので、Dockerが流行ってはいますが、Dockerのイメージ作成者でなければ
そこまで勉強しなくてもいいのではと思います。

ちなみに小松が開発環境を自分で決める時はクラウドにサーバーを置いて
そこにファイルを転送してテストするって方法を取っていて、月額2000円程度かかりますが、
こっちのほうが簡単に新しいエンジニアに参加させる事ができて、テストもできるかと思うので、
そうしています。

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install ca-certificates
sudo apt-get install curl
sudo apt-get install software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \\
$(lsb_release -cs) \\
stable"
sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/ubuntu \\
$(lsb_release -cs) \\
stable"
sudo apt-get update
sudo apt-get install -y docker-ce
docker version
sudo usermod -aG docker komatsu
docker version
sudo docker version
sudo usermod -aG docker komatsu
docker version
sudo docker version
git clone https://github.com/mochizukikotaro/docker-nginx-phpfpm.git
cd docker-nginx-phpfpm/
docker-compose up

登録日:

更新日:

by

コメント         tweetでコメント