Docker学び直し


本日は、ソフトウェア開発現場で必須技術になりつつある、Dockerについて詳しく解説したいと思います。特に、Ubuntu環境におけるDockerとDocker Composeの構築方法、そしてコンテナが終了した際に自動的にコンテナやイメージ、さらにはボリュームを削除する方法について触れていきます。これにより、開発環境をクリーンに保つことができ、無駄なリソースを消費せずに済むので、ぜひご覧ください。

DockerとDocker Composeの概要

Dockerは、アプリケーションをコンテナ技術を使ってパッケージ化し、どこでも実行できるようにするプラットフォームです。これにより、開発環境と本番環境の差異を減少させ、デプロイメントの際のトラブルを避けることができます。一方、Docker Composeは、複数のDockerコンテナを一括で管理するためのツールで、docker-compose.ymlという設定ファイルを基に構成を行います。

UbuntuにおけるDockerとDocker Composeのインストール手順

まずはUbuntuにDockerとDocker Composeをインストールする手順について説明しましょう。

  1. 必要なパッケージのインストール bash sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  2. DockerのGPGキーを追加 bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
  3. Dockerのリポジトリを追加 bash sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
  4. Dockerのインストール bash sudo apt-get update sudo apt-get install docker-ce
  5. Docker Composeのインストール bash sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

これで、DockerとDocker Composeの準備が整いました。

Dockerfileの基本と作成方法

次に、Dockerfileの基本について触れます。Dockerfileは、Dockerイメージを作成するための設定ファイルです。以下は簡単なDockerfileの例です。

dockerfile FROM ubuntu:20.04

必要なパッケージをインストール

RUN apt-get update && apt-get install -y python3 python3-pip

アプリケーションのソースコードをコピー

COPY ./app /app

作業ディレクトリの指定

WORKDIR /app

アプリケーションの依存関係をインストール

RUN pip3 install -r requirements.txt

アプリケーションを実行

CMD [“python3”, “app.py”]

このDockerfileを基にDockerイメージをビルドすることで、環境を一貫させることができます。次に、docker-compose.ymlについて見ていきましょう。

docker-compose.ymlの設定方法

docker-compose.ymlは、Docker Composeを使用して複数のサービスを定義するためのファイルです。以下は、シンプルな設定例です。

yaml version: ‘3’ services: web: build: . ports: – “5000:5000” volumes: – .:/app

この設定では、webというサービスを定義し、Dockerfileを基にビルドするように指示しています。

コンテナ終了時に自動削除する方法

Dockerのコンテナが終了した際に自動的に削除するには、--rmオプションを使用します。Docker Composeの場合、このオプションはdocker-compose.ymlに記述することも可能です。

具体的には、以下のように設定します。

yaml version: ‘3’ services: web: build: . ports: – “5000:5000” volumes: – .:/app restart: “no”

ここで、restart: "no"を指定することで、コンテナが終了した際に自動的に削除されます。

ボリュームも自動削除する設定

ボリュームも自動的に削除する設定については、docker-compose.ymlに以下のように記述します。

yaml version: ‘3’ services: web: build: . ports: – “5000:5000” volumes: – .:/app deploy: restart_policy: condition: none

このように、コンテナの終了時にボリュームも合わせて削除することで、無駄なデータを残さずに環境をクリーンに保つことができます。

実際の使用例と注意点

実際に上記の設定を使って運用してみると、開発環境が非常にすっきりすることを実感できるでしょう。ただし、注意点としては、必要なデータを誤って削除しないように、ボリュームの管理には十分に気を配る必要があることです。

まとめ

今回は、Ubuntu環境におけるDockerとDocker Composeの構築方法、およびコンテナ終了時に自動的に削除する方法について詳しく解説しました。このテクニックを活用することで、開発環境を整え、無駄なリソースを削減することができます。ぜひ、実際のプロジェクトに活用してみてください。


本記事は、AI によって生成されました。
本画像は、SD3 によって生成されました。