あなたはDockerというものをご存知ですか?
- Dockerって聞いたことあるけど、よう分からん。。
- コンテナを使うやつっていう位しか知らん。
- 便利なものっていう位しか知らん。
このように、Dockerについて詳しくない方も多いはずです。
僕も、Dockerを使ったことがなく、全くと言っていいほど知識がありませんでした。
勉強するのに良いサイトもなかったので、それなら自分で記事を書いちゃえということで色々とまとめてみました。
Dockerとは
Dockerとは、コンテナと呼ばれるOSレベルの仮想化環境を提供するオープンソースソフトウェアです。
まあ、いい感じのシャレオツな仮想環境ってことです。
Dockerの実行方法
Dockerは、「イメージ」「コンテナ」の2つの概念を持ちます。
- イメージは「OS・アプリケーションがセットとなっているテンプレ」
- コンテナは「イメージを元に実行される箱」
つまり、イメージを作成し、コンテナを実行することで、様々な環境を構築できるということになります。
Dockerのメリット
Dockerを使うのは良いですが、そもそもなぜ使うのかを理解しておく必要があります。
Dockerにはしっかりとしたメリットがあるので、ポイントを押さえておきましょう。
ミドルウェアをローカルにインストールする必要がない
Dockerは、OS・アプリケーションなどをコンテナという単位で扱うため、ローカルにミドルウェアをインストールする手間が省けます。
同一環境を構築することが容易
Dockerは容易に同一環境を構築することができます。つまり、開発環境を本番環境に複製することもできるということです。
開発と本番で同一環境を再現できるというのは開発者からすれば有難いですね~。
軽量である
従来、仮想環境を構築するなら「Virtual Box」などの仮想化ソフトウェアを使用していました。
それぞれに良さがあるわけですが、Dockerは仮想化ソフトウェアを使用するよりも軽量という特徴があります。
優れたポータビリティ性
Dockerは、優れたポータビリティ性を持ちます。
OS・アプリケーションなどをコンテナという1単位として扱うので、別環境に同じ環境を構築するのも容易なわけです。
Dockerのインストール
Dockerを使用できる環境を構築します。
Docker for Windows/Macをインストールします。
僕の環境は、OSがWindows10なので、今後はWindows10を前提として話を進めていきます。
まずはDockerを使ってみよう!
何事もまずは触れてみる、ということで実際にDockerを使用してみましょう。
今から作成するものは、シェルを実行するだけのアプリケーションですが、これをDockerで再現してみます。
1 2 3 |
#!/bin/shell echo "俺やで!!!" |
1 2 3 4 5 6 |
FROM ubuntu:16.04 COPY helloworld /usr/local/bin RUN chmod +x /usr/local/bin/helloworld CMD ["helloworld"] |
次に、Dockerfileを作成します。Dockerfileは「Dockerがどんなイメージを作成・実行するかを定義するファイル」です。
以下が、Dockerfileで使用するインストラクション(命令)の説明です。
インストラクション | 概要 |
---|---|
FROM | ベース(コンテナのひな型)となるDockerイメージ(OS)を定義する。 |
COPY | ホスト側から、Dockerコンテナ内へファイルをコピーする。 |
RUN | Dockerコンテナ内で任意のコマンドを実行する。 |
CMD | 出来上がったイメージをDockerコンテナとして実行する前に行われるコマンドを定義する。 |
1 |
$ docker image build -t helloworld:latest . |
シェルファイルとDockerfileを同一フォルダに配置し、コマンドを実行します。
Dockerイメージをビルドしています。
1 |
$ docker container run helloworld:latest |
Dockerコンテナを実行します。
「俺やで!!!」とコンソール上に表示されればOKです。
おすすめ本
Dockerを深く理解したい方は、以下の書籍がおすすめです。
まとめ
思っている以上に簡単ですね。
あと、やっぱり軽量なんですよね、Dockerは。
今後も少しずつ勉強していきます!
ではさいなら。