Dockerは、コンテナ技術をPC上で実現・管理できるツール群です。Windows, OS-X, Linux のマルチプラットフォームで動作します。
コンテナ技術とは、ホストOSのカーネルを共用し、別プロセス上でシェル、ウェブサーバー、言語エンジンなどのカーネル以外の部分を動作させる技術です。
このカーネル以外の部分は「イメージ」と呼ばれ、ひとつのファイルとして扱うことができます。つまり環境をカプセル化して保存・再利用することができます。
一台のPC上であたかも複数のマシンが動作しているようにみえます。一見、仮想化技術のようにみえますが、似て非なるものです。
この概念を図にしたものを以前にアップしてあります。こちらを参照してください。
メリットは、
- イメージファイルを共有することで、まったく同じ環境を再現・配布できる
- イメージファイルを保存しておけば、いくらでもやり直しできる
- ホストOSのカーネルを共用することで、仮想環境よりもはるかに軽量
- よく利用される環境(イメージファイル)は、Docker Hub というウェブサイトで公開されていて、取得してすぐに利用することができる。
- 作成した環境(イメージファイル)は、クラウド上のオーケストレーション環境でも使用できる
たとえば、Docker がインストールされているPCで、ターミナルから
> docker run –name my-nginx -d -p 8080:80 nginx
と、入力すると、
- Docker Hub から、”nginx” イメージをダウンロード
- Docker内(別プロセス)で、コンテナ “my-nginx” を起動
- コンテナ内で、Webサーバの “nginx” (ポート 8080)を起動する
ホストPCのブラウザで、”localhost:8080″ にアクセスすると、
Welcome to nginx!
と表示される。
コメント