このハンズオンでやることDocker の概要を学び、コンテナ操作を体験します
想定時間1h
前提知識・用語仮想化、CUI 操作

# Dockerを触ってみよう

# はじめに

# Docker とは

Docker は、Docker 社が開発しているコンテナ型の仮想環境プラットフォームです。 コンテナとは仮想マシンのような1台のコンピュータの上で、仮想的に複数のコンピュータを動作させる技術の1つのしくみです。

Docker(コンテナ仮想化プラットフォーム)を使用すると、アプリケーションやその依存関係をコンテナと呼ばれる独立した環境にパッケージ化することができます。

しかしながら、コンテナは従来の仮想化とは異なる仕組みの下、動作しています。

一般的な仮想マシンと呼ばれるソフトウェア(VirtualBox など)では、ホストOS上で仮想マシン用のソフトウェアを動かすことでホストOSとは異なるOSを起動します。 これにはメリットもありますがデメリットもあります。即ちOS の中で別のOSを起動するため、起動やデプロイに時間を要する事、ハードウェアにアクセスする際もオーバーヘッドが大きく、効率が落ちたり、時間がかかる。などが挙げられるでしょう。

一方、コンテナによる仮想化は、ホストOS 上に専用のアプリケーション実行用の領域を作成しその中で実行するしくみとなっています。 そのため、従来の仮想化と比較してアプリケーションや環境の起動が高速なだけで無くメモリやディスクの使用量も大幅に削減することが可能です。

これらは開発環境で作成したアプリケーションを他の環境や本番環境に移す際、アプリケーションの実行に必要な環境ごと配布する事が可能になり、メンバー全員が同じ環境で開発を行うことが容易になります。

# "Docker" とは

これまでは Docker = コンテナ仮想プラットフォーム、として説明しましたが、本講義で扱う"Docker"は、コンテナ仮想プラットフォームを扱う上での技術的な概念やコマンド等を示します。

以下にDockerを扱う上で重要となる概念を記載します。

  • Docker コンテナ

    • Dockerは、アプリケーションとその依存関係をコンテナと呼ばれる軽量な仮想環境にパッケージ化します。コンテナは、ホストマシンとは独立して実行され、一貫した動作を提供します。コンテナはポータブルであり、異なる環境やプラットフォームで実行できます。
  • Docker イメージ

    • Dockerコンテナは、Dockerイメージから作成されます。イメージは、アプリケーションの実行に必要なすべての依存関係と設定を含むファイルシステムのスナップショットです。イメージは、Dockerfileと呼ばれるテキストファイルに定義され、ビルドコマンドを使用して作成されます。
  • コンテナオーケストレーション

    • Dockerは、コンテナのデプロイメントと管理を容易にするための機能を提供します。複数のコンテナを管理するためのツールとして、Docker ComposeやKubernetes(*)などがあります。これらのツールを使用すると、複雑なマルチコンテナ環境を構築し、スケーリングやロードバランシングなどの機能を実現することができます。
  • イメージの共有

    • Docker HubやDocker Registryなどのオンラインリポジトリを使用することで、Dockerイメージを共有および配布することができます。これにより、他の開発者との協力や、既存のイメージを再利用することが容易になります。

本講では主に仮想環境プラットフォームである「Docker コンテナ」を中心に行いますが、一方で「Docker イメージ」についても学び、自身にとって扱いやすい仮想環境プラットフォームを扱えることを目的と致します。

コンテナオーケストレーション」については続く docker-compose の項で扱います。

# 講義の進め方

本講義では、予めDockerがインストールされていることを前提としています。 Dockerのインストールが完了していない方は、「ハンズオン事前準備」を済ませてください。

# Chapters

# 参考

# Docker のアーキテクチャ

Docker Image (https://matsuand.github.io/docs.docker.jp.onthefly/get-started/overview/ (opens new window))


CC BY-SA Licensed | Copyright (c) 2023, Internet Initiative Japan Inc.