Help us understand the problem. What is going on with this article?

Docker基本まとめ

More than 1 year has passed since last update.

Dockerとは

Dockerとは仮想化環境でアプリを管理・実行するためのオープンソースのプラットフォームのことです。

オンプレミスな環境だけでなく、AWSなどのクラウド環境でも動作します。

またDockerは、よく仮想マシンと比較されます。VirtualBoxなどの仮想マシンでは、ホストマシン上でハイパーバイザを利用しゲストOSを動かし、その上でミドルウェアなどを動かします。それに対し、コンテナはホストマシンのカーネルを利用し、プロセスやユーザなどを隔離することで、あたかも別のマシンが動いているかのように動かすことができます。そのため、軽量で高速に起動、停止などが可能です。

Dockerの必要性

Dockerはどんなときに役に立つのでしょうか?

それは、アプリケーション開発において、複数人で同一アプリを管理したいときや、サービスによって異なるバージョンのライブラリやミドルウェアを用いるときです。

そもそも開発した業務アプリケーションを本番環境で可動させるには、次の要素が必要になります。

  • 業務アプリケーションの実行モジュール(プログラム本体)
  • ミドルウェアやライブラリ群
  • OS / ネットワークなどのインフラ設定

Dockerはこれらの要素をコンテナにまとめて管理します。

開発プロセスにおいて、開発環境やテスト環境で正しく動作しても、本番環境にデプロイすると正常に動かないことがあります。構成や設定が、環境によって異なる可能性があるためです。

Dockerを用いると、すべての環境においてDockerのコンテナーと呼ばれるものがアプリケーションの実行に必要なすべてをまとめてくれます。
コンテナーはDockerをインストールしている環境であれば、どこでも動作するため、開発・テスト環境・本番環境のギャップがない状態で動作させることが可能になります。

Dockerの機能

Dockerには大きく分けて、次の3つの機能があります。

  • Dockerイメージの作成
  • Dockerコンテナの実行
  • Dockerイメージの共有

順を追って説明していきます。

Dockerイメージの作成

Dockerでは、アプリの実行に必要になるプログラム本体 / ライブラリ / ミドルウェアや、OS、ネットワーク設定などを1つにまとめてDockerイメージを作成します。イメージは、Dockerのコマンドを使って作成することもできますが、Dockerfileというコードから自動で作ることもできます。
完成したDockerイメージは、実行環境で動くコンテナのもとになります。Dockerイメージの正体は、アプリの実行に必要なファイル群が格納されたフォルダです。Dockerコマンドを使うとイメージをtarファイルに出力できます。

image.png

Dockerコンテナの実行

Dockerは、Linux上でコンテナ単位でサーバー機能を動かします。このコンテナのもとになるのが、Dockerイメージです。Dockerイメージさえ存在していれば、Linux上にDockerがインストールされている環境において、どこでもコンテナを動かすことができます。
また一つのDockerイメージから複数のコンテナを起動することもできます。
コンテナの起動 / 停止 / 破棄にはDockerコマンドを使います。

Dockerイメージの共有

Dockerイメージは、Dockerレジストリで一元管理が可能です。例えば、Docker Hubでは、UbuntuやCentOSなどのLinuxディストリビューションの基本機能を提供するベースイメージが配布されています。これらのベースイメージにミドルウェアやライブラリ / デプロイするアプリなどを入れたイメージを積み重ねることによって、独自のDockerイメージを作っていきます。

yuuuking
timee
日本の労働力の減少を若者の働き方改革で解決します。好きな時に好きなだけ働けるプラットフォームタイミーを作り、人々が好きなことをできる世界を実現します。
https://timee.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした