1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

目次

  1. Dockerとは何なのか (10m)
  2. 実際にDockerを使ってみよう (15m)
  3. 質疑応答 (5m)

1. Dockerとは何なのか

Dockerの概要

Dockerは、アプリケーションを動かすための環境を「コンテナ」としてまとめて、どこでも同じように動かせるツールです。

image.png

なぜDockerを使うのか?

  • 環境の統一:開発環境と本番環境の違いをなくし、「動作しない」問題を解決。
  • ポータビリティ:どのOSでも同じ環境を再現できる。
  • スケーラビリティ:マイクロサービスアーキテクチャに適している。
  • 高速なデプロイ:コンテナ化されたアプリケーションはすぐに立ち上げ可能。
  • 軽量:仮想マシン(VM)と比較してリソース消費が少なく、起動が速い。
  • 依存関係の管理:各コンテナが独立しているため、システム間の競合が発生しにくい。

Dockerの主要概念

  • イメージ(Image):コンテナの元となる設計図。
  • コンテナ(Container):イメージから作成される実行可能な環境。
  • Dockerfile:イメージを作成するための設定ファイル。
  • レジストリ(Registry):Dockerイメージを保存・共有する場所(例:Docker Hub)。

Dockerのデメリット

  • 理解が難しい:Dockerのコンセプトを理解するには時間がかかり、初心者には少し難しい

  • パフォーマンス:仮想マシンより軽量だが、少しパフォーマンスが低下する

  • 一部のアプリケーションには向かない:GUIアプリケーションやハードウェアへの直接アクセスが必要なアプリケーション(例:グラフィック処理アプリ)には向かない

  • オーケストレーションの複雑さ:複数のコンテナを扱う場合、Kubernetesなどを使う必要があり、初心者にとってハードルが高い


2. 実際にDockerを使ってみよう

事前準備

1. Docker Desktopのインストール

公式サイト からインストール可能

2. Visual Studio Code (VSCode)のインストール

公式サイト からインストール可能

3. test.py の作成

test.py
print("hello docker")

手順①(docker build→docker run)

1. Dockerfile を作成

以下の内容で Dockerfile を作成します。

FROM python:3.9-slim
WORKDIR /app
COPY . /app
CMD ["python", "test.py"]

2. Dockerイメージをビルド

DockerDesltopを立ち上げ、Dockerイメージを作成します。

docker build -t test .

3. コンテナを実行

作成したイメージを使ってコンテナを実行します。

docker run test

4. 実行結果

コンテナが起動し、以下の出力が表示されます。

hello docker

手順②(docker compose)

1. docker-compose.yml を作成

以下の内容で docker-compose.yml を作成します。

docker-compose.yml
version: '3.8'

services:
  python-service:
    image: python:3.9-slim
    volumes:
      - .:/app
    working_dir: /app
    command: |
      bash -c "
        python test.py"

2. Dockerイメージをビルドしてコンテナを起動

DockerDesltopを立ち上げ、下記コマンドを実行

docker-compose up

3. 実行結果

コンテナが起動し、以下の出力が表示されます。

hello docker

手順①と手順②の違い

項目 docker builddocker run docker compose
使用するファイル Dockerfile docker-compose.yml
実行手順 docker builddocker run docker-compose up
主な用途 単一のコンテナの実行 複数コンテナやサービスの管理

作られたイメージやコンテナの操作

イメージの確認

下記コマンドをターミナルで実行

docker images

コンテナの確認

下記コマンドをターミナルで実行

docker ps -a

イメージの削除

下記コマンドをターミナルで実行

docker rmi <imageID>

イメージの削除

下記コマンドをターミナルで実行

docker rm <CONTAINER ID>

不要なリソースを自動的に削除する

対象のリソース

  • 未使用のコンテナ:停止しているコンテナ
  • 未使用のネットワーク:現在使われていないネットワーク
  • 未使用のボリューム:コンテナに関連付けられていないボリューム
  • 未使用のイメージ:タグが付けられていない、または参照されていないイメージ

下記コマンドをターミナルで実行

docker prune

まとめ

  • Dockerはアプリケーションを「コンテナ」としてまとめ、どこでも同じ環境で動かすツール。
  • Dockerを使うことで、開発環境と本番環境の違いをなくし、環境の再現性が向上する。
  • 複数のサービスやコンテナを簡単に管理でき、マイクロサービスアーキテクチャにも適している。
  • コンテナは軽量で高速、依存関係を管理しやすい。
  • 単一コンテナの場合docker buildでイメージを作成、docker runでコンテナを起動。
  • 複数のコンテナを扱う場合、docker-composeを使用すると便利。
  • Dockerは仮想マシンより軽量だが、パフォーマンスが少し低下することがある。

おすすめ書籍

3. 質疑応答

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?