テクノロジー

2024年11月21日

Dockerとは

Dockerは、コンテナ型の仮想技術を用いて環境を作成、配布、実行するためのプラットフォームです。

ゴール

  • Dockerの概念を理解する
  • Dockerをインストールする

Dockerとはなにか

コンテナ

Dockerは、コンテナ型の仮想技術を用いて環境を作成、配布、実行するためのプラットフォームです。

Image from Gyazo

出典: Docker公式ドキュメント

ホストOSの上に動作しているDockerからコンテナと呼ばれるミドルウェアの環境構築がされた実行環境を作成し、その中でアプリケーションを動作させます。

コンテナはホストOSのカーネルを利用し、プロセスやユーザなどを隔離することで、別のマシンが動いているかのように振舞うことができます。
さらに、コンテナはパッケージ化した分離環境でプログラムを操作させるため、以下のことが可能です。

  • ホストOS上で複数のコンテナを構築して実行する
  • 別のOS上にコンテナを移しても動作する

DockerはLinuxのコンテナ技術を使うため、次に説明する仮想マシンと比較されることが多いです。

仮想マシン

仮想マシンはハイパーバイザを通してホスト・リソースに仮想的にアクセスし、ゲストOSを実行します。

Image from Gyazo

出典: Docker公式ドキュメント

仮想マシンでは、ホストマシン上でハイパーバイザを利用してゲストOSを動かし、その上でミドルウェアの環境構築がされた実行環境を作成し、その中でアプリケーションを動作させます。
VirtualBoxなどのツールは、この仮想マシン技術を用いてPC上に仮想的なPCを立ち上げるということを行っています。

両者の比較

特徴 コンテナ 仮想マシン
起動速度 早い 遅い
サイズ 軽量 大きい
使用メモリ 少ない 大きい
セキュリティ 共通OSを使うので注意が必要 ゲストOSを使うため設定可能

Dockerをつかうメリット

Dockerをつかうことのメリットはいくつかあります。

  • ホストから分離した状態でプログラムを動作させることができるので、ホストからの影響を限定することができる
  • コンテナという形にしておくことで、さまざまなプラットホーム(さまざまな環境のホスト)で動作させることが容易になる
  • コンテナという形にしておくことで、新しいプログラムを毎回新しい環境を作って動作させるため、環境が違っていて動かないという問題を大きく減らすことができる
  • 分離環境を作るのは仮想マシン上で動作させるOSと同じだが、Dockerの方がホストと共有するリソースが多いため、軽量になる
  • ミドルウェアのインストールや各種環境設定をコード化して管理するため、実行環境のOSが異なっても影響が少ない

Dockerに関する用語

Dockerfile

  • Dockerコンテナの構成内容をまとめて記述しているファイル
  • docker build コマンドでDockerfileからDockerイメージを作成する

Dockerイメージ

  • Dockerコンテナの素
  • Rubyで例えると、Dockerイメージがクラスで、Dockerコンテナがそのインスタンス

Dockerコンテナ

  • 実行可能なDockerの単位

コンテナID

  • Dockerコンテナが起動したときに採番される、コンテナを一意に表すハッシュ値

イメージID

  • Dockerイメージが登録されたときに採番される、イメージを一意に表すハッシュ値

Docker hub

  • Dockerイメージ版のGitHubにあたるサービスでDockerイメージが公開されている

ホスト

  • Dockerコンテナを動作させている側の環境を、コンテナの中と区別するためにホストと呼ぶ

Dockerのインストール

macOS、Windows、Linuxの3通りのインストールを記載します。

macOS

1. Docker Desktop for Macのインストール

Docker Desktop for Macにアクセスし、「Get Docker Desktop for Mac」のリンクからDocker Desktopをダウンロードします。
Apple silicon搭載のmacOSをお使いの場合は「Docker Desktop for Mac with Apple silicon」、Intelチップ搭載のmacOSをお使いの場合は「Docker Desktop for Mac with Intel chip」を選択してください。

すると、Docker.dmgファイルがダウンロードされますので、ファイルを実行してインストールします。
インストーラが起動したら、アプリケーション・フォルダにDockerアイコンをドラッグします。

Image from Gyazo

2. Dockerの起動

Launchpad内の「Docker」をクリックし、Dockerを起動します。
以下のように、Docker Desktopアプリケーションの画面が表示されればインストール成功です。
*Docker Desktopのバージョンによって、UIが異なる場合があります。

Image from Gyazo

WSL

1. Docker Desktop for Windowsのインストール

Docker Desktop for Windowsにアクセスし、「Get Stable」のリンクを選択します。
Docker Desktop Installer.exeファイルがダウンロードされますので、ファイルを実行してインストールします。

2. Hyper-Vの有効確認

Hyper-Vが有効になっていない場合は、有効化を求められますので、OKを押します。

3. 利用規約の承諾

インストール・ウィザードの指示に従い、利用規約(ライセンス)を承諾し、インストーラに権限を与えてインストールを進めます。
インストールに成功したら、 Close (閉じる)をクリックしてインストールを終了します。

4. Dockerの起動

インストール後は、Dockerは自動で起動しません。
Dockerを開始するには、Dockerを検索して「Docker Desktop」を選択して起動します。

Dockerを起動するとターミナルウィンドウにDockerのアイコンが表示されれば、起動完了です。

まとめ

  • DockerはLinuxのコンテナ技術を使ったもので、別のマシンが動いているかのように動かすことができるため、軽量で高速に起動、停止などができる。
  • Dockerはミドルウェアのインストールや各種環境設定をコード化して管理する。

ダイビックのことをもっと知ってみませんか?