Debian 12、11、10 に Docker をインストールする方法

Docker は、アプリケーションをコンテナ化することでデプロイメント プロセスを簡素化し、複数の環境間で一貫性を確保できるため、急速に人気が高まっています。軽量で効率的に拡張できるため、開発者や IT プロフェッショナルの間で人気があります。

  • ポータビリティ: Docker コンテナは Docker をサポートする任意のシステムで実行できるため、アプリケーションがさまざまな環境でシームレスに動作することが保証されます。
  • 分離各コンテナは独立して動作するため、競合のリスクが軽減され、依存関係の管理が容易になります。
  • 効率: コンテナはホスト OS カーネルを共有するため、従来の仮想マシンよりも効率的です。
  • スケーラビリティ: Docker を使用すると、コンテナを追加または削除することでさまざまな負荷に対応し、アプリケーションを簡単にスケーリングできます。
  • バージョン管理: 変更を追跡し、簡単に以前のバージョンにロールバックできるため、開発と展開のワークフローが強化されます。

Debian いくつかの理由から、Docker と組み合わせるには好ましい選択肢です。

  • 安定性: 堅牢性と信頼性で知られる Debian は、Docker コンテナの安定した基盤を保証します。
  • 安全: 定期的なアップデートとセキュリティへの重点的な取り組みにより、Debian はアプリケーションを展開するための安全な環境となっています。
  • コミュニティサポート: 大規模で活発なコミュニティが広範なドキュメントとサポートを提供し、トラブルシューティングを容易にします。
  • パフォーマンス: 軽量かつ効率的な Debian は、Docker コンテナが最小限のオーバーヘッドでスムーズに実行されることを保証します。

導入はこれで終わりにして、ターミナル コマンドとさまざまな方法を利用して環境を効率的に起動し、実行しながら、Debian に Docker をインストールする方法を見ていきましょう。

Docker のインストール前の手順

Debian システムで Docker CE をセットアップするのは簡単ですが、細心の注意が必要です。インストール プロセスに進む前に、エラーのない実行のための準備を整えましょう。

ステップ1: 以前のDockerインスタンスを削除する

注記: Debian のリポジトリから Docker のデフォルト バージョンをインストールしていない場合は、削除手順をスキップしてください。

まず、競合のない環境を確保するために、既存の Docker インストールをすべて削除する必要があります。以前のバージョンの Docker は、今後のインストールに干渉し、予期しないエラーを引き起こす可能性があります。古いバージョンの Docker が存在する場合は、次のコマンドを使用してアンインストールします。

sudo apt remove docker docker-engine docker.io containerd runc

削除する古いDockerインスタンスがない場合、 apt パッケージ マネージャーは、アンインストールするものがないことを示すメッセージを返します。

Dockerをアンインストールしても、通常はDockerイメージ、コンテナ、ボリューム、ネットワークは自動的に削除されないことに注意してください。 /var/lib/docker/最初からやり直して Docker 関連のデータをすべて削除する場合は、次のコマンドを使用します。

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

これにより、インストール プロセスに影響を及ぼす可能性のある Docker の残留物がすべて除去されます。

ステップ2: Dockerのインストール前にDebianパッケージを更新する

古いバージョンの Docker を削除したら、次のステップとして Debian システムが完全に更新されていることを確認します。更新によりシステムの安定性が向上し、システム パッケージが最新バージョンになり、潜在的な競合や脆弱性が最小限に抑えられます。

利用可能なパッケージのリストを更新し、インストールされているパッケージをアップグレードするには、次のコマンドを実行します。

sudo apt update && sudo apt upgrade

このコマンドはまず利用可能なパッケージのリストを更新します(apt update)、その後に古くなったパッケージのアップグレード(apt upgrade).

Docker CE APTリポジトリをインポートする

Docker CE を正常にインストールするには、Debian システムを Docker リポジトリにアクセスできるように設定することが不可欠です。これには、Docker リポジトリをシステムに統合し、対応する GPG キーをインポートすることが含まれます。これらの手順により、ダウンロードした Docker パッケージの信頼性が確保され、不正な変更のリスクが軽減されます。

ステップ1: Docker CEの初期パッケージをインストールする

最初は、このプロセスに必要なパッケージがシステムに不足している可能性があります。これを修正するには、パッケージをインストールします。これらの重要なパッケージをインストールするには、次のコマンドを実行します。

sudo apt install ca-certificates curl gnupg lsb-release dirmngr software-properties-common apt-transport-https

ここでは、 apt パッケージマネージャを使用して、さまざまなツールをインストールします。 ca-certificates 証明書の検証のため、 curl データを転送する gnupg キー管理、およびこのプロセスに必要なその他のもの。

ステップ2: Docker CE GPGキーを追加する

必要なパッケージをインストールしたら、Docker GPG キーをインポートしましょう。このキーにより、システムは Docker リポジトリからダウンロードしたパッケージの整合性を検証できるようになります。

GPG キーをダウンロードして保存するには、次のコマンドを使用します。

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

curl コマンドはDockerリポジトリからGPGキーを取得し、それを gpg --dearmor それをバイナリ形式に変換して apt 必要。

ステップ3: Docker CE APTリポジトリを追加する

GPG キーが準備できたら、Docker リポジトリをインポートできます。これを行うためのコマンドは次のとおりです。

echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

この複雑そうなコマンドは、Docker リポジトリをシステムのソース リストに追加し、以前にダウンロードした GPG キーにリンクします。このリンクは、Docker リポジトリからダウンロードしたパッケージの整合性を検証し、システムを安全に保ちます。

Dockerのインストールを完了する

このセクションでは、Debian システムに Docker CE をインストールするために必要な手順について説明します。システムのリポジトリ情報を更新し、Docker をインストールし、テスト Docker イメージを実行してインストールを確認する方法を学習します。さらに、このセクションには、Docker コンテナーとイメージの安全な取り扱いを保証するための重要なセキュリティ プラクティスが含まれています。

ステップ 1: Docker CE リポジトリのインポート後に Debian APT キャッシュを更新する

Docker のインストールを開始する前に、システムのリポジトリ情報が最新であることを確認すると便利です。特に最近追加された Docker リポジトリの場合は重要です。リポジトリ情報を更新するには、次のコマンドを実行します。

sudo apt update

このコマンドは、パッケージの最新バージョンとその依存関係に関する詳細を含む、システムのパッケージ リストを更新します。

ステップ2: APTコマンドでDockerをインストールする

システムのリポジトリ情報が更新されたら、Docker のインストールを続行できます。以下は、Docker エクスペリエンスを強化するいくつかの追加プラグインとともに Docker をインストールするコマンドです。

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

このコマンドでは、インストールします docker-ce (Docker コミュニティ エディション) docker-ce-cli (Docker コマンドラインインターフェース) containerd.io (業界標準のランタイム)、およびイメージの構築とマルチコンテナ アプリケーションの管理に役立つ 2 つの Docker プラグインが含まれています。

ステップ3: DebianでのDocker CEのインストールを確認する

Docker のインストールが完了したら、テスト Docker イメージを実行して、インストールが正しいことを慎重に確認します。

sudo docker run hello-world

このコマンドは、 hello-world Docker リポジトリからイメージを取得し、このイメージから新しいコンテナを作成して、コンテナを実行します。実行するとウェルカム メッセージが出力され、Docker が期待どおりに機能していることが確認されます。

ステップ4: 非ル​​ートユーザーとしてDockerを実行する

セキュリティ上の理由から、Docker を非ルート ユーザーとして実行するように構成します。この方法により、損害を引き起こす可能性のある偶発的または悪意のある変更からシステムを保護できます。後のセクションで、この点について詳しく説明します。

Docker トラブルシューティングのヒント

Docker コンテナやイメージを操作しているときに問題が発生した場合は、システムを再起動すると、特にパス生成に関連する問題の解決に役立つ場合があります。システムを再起動するには、次のコマンドを使用します。

reboot

Systemd 経由で Docker を管理する

このセクションでは、systemd を使用して Docker サービスを操作する方法について説明します。systemd は、Debian を含む多くの Linux ディストリビューションの基本コンポーネントであり、システム プロセスとサービスを管理する機能を提供します。Docker は、Debian システムに systemd ユニットをインストールするため、Docker サービスを効率的に管理できます。

systemd経由でDockerサービスを開始する

Docker を利用するには、Debian システム上でサービスがアクティブに実行されている必要があります。Systemd は次のコマンドを通じてこれを実現します。

systemctl start docker.service

このコマンドは Docker サービスを開始し、システムの起動時に自動的に起動するように構成して、起動ごとにその可用性を確保します。

systemd経由でDockerサービスを停止する

状況によっては、Docker サービスを停止したい場合があります。Systemd は、これを実行するための簡単なコマンドを提供します。

systemctl stop docker.service

このコマンドは Docker サービスを停止し、次回のシステム起動時に自動的に起動されないようにします。

systemd経由でDockerサービスを再起動する

特に Docker 関連の問題をトラブルシューティングする場合、Docker サービスを再起動したい場合があります。Systemd は、次のコマンドで Docker サービスを再起動する機能を提供します。

systemctl restart docker.service

このコマンドは Docker サービスを停止および開始し、最新の構成を効果的に適用します。

systemd 経由で Docker サービスのステータスを確認する

Docker サービスの動作ステータス (実行中、停止中、非アクティブ) を確認するには、次の systemd コマンドを使用します。

systemctl status docker.service

このコマンドは、Docker サービスの現在のステータスを取得して表示し、その動作状態に関する洞察を提供します。

systemd 経由で Debian システムブートで Docker サービスを有効にする

システムの起動時に Docker サービスを自動的に開始したい場合は、systemd 経由で有効にするのが推奨される方法です。

systemctl enable docker.service

このコマンドは、システムの起動ごとに Docker サービスの設定を自動的に開始するように調整し、Docker 機能を継続的に利用できるようにします。

systemd 経由でシステム起動時に Docker サービスを無効にする

システムの起動時に Docker サービスを自動的に起動しないようにする場合、systemd は次のコマンドでこの要求に対応できます。

systemctl disable docker.service

このコマンドは Docker サービスの設定を変更し、システムの起動時に Docker が自動的に開始されないようにします。

systemd コマンドを利用すると、Debian システム上の Docker サービスを効果的に管理し、Docker の動作を高度に制御できます。次のセクションでは、Docker コンテナーとイメージの利用と管理についてさらに詳しく説明します。

Docker の設定方法の例

このガイドの部分では、Docker 構成の設定について詳しく説明します。これには、セキュリティを強化する非ルート ユーザーとしての Docker の管理や、ニーズに合わせてデフォルトのログ ドライバーを変更することが含まれます。

ステップ1: 非ルートユーザーとしてDockerを実行する

Docker をルート ユーザーとして実行することは可能ですが、潜在的なセキュリティ リスクや Debian ホスト システムの偶発的な変更の可能性があるため、推奨されません。代わりに、セキュリティを強化するために、非ルート ユーザー アカウントで Docker 操作を管理してください。

Docker 管理専用の新しいユーザーを作成するには、次のコマンドを実行します。

sudo useradd -m dockeruser
sudo usermod -aG docker dockeruser

これらのコマンドは、「dockeruser」という名前の新しいユーザーを作成し、このユーザーを Docker グループに追加します。Docker グループのメンバーになると、ユーザーには Docker コマンドを実行するために必要な権限が付与されます。

現在のユーザーを Docker グループに割り当てる場合は、「dockeruser」をユーザー名に置き換えます。たとえば、「joshua」という名前のユーザーの場合、コマンドは次のようになります。

sudo usermod -aG docker joshua

これらの変更を行った後、ログアウトして再度ログインし、変更を適用します。場合によっては、これらの変更を反映させるためにシステムを再起動する必要があります。

ユーザーに Docker コマンドを実行する権限があることを確認するには、次のコマンドを使用します。

docker ps

このコマンドを実行すると、実行中の Docker コンテナのリストが表示され、インストールが成功したことが示されます。

ステップ2: デフォルトのDockerログドライバーを変更する

Docker は、デフォルトでは、イベントを JSON ファイル形式でログに記録します。ただし、Docker の柔軟性により、デフォルトのログ ドライバーを別の形式に変更したり、ログをリモート ログ管理システムに転送するように構成したりすることもできます。

デフォルトのログドライバを変更するには、新しいファイルを作成する必要があります。 daemon.json の中に /etc/docker/ ディレクトリ。nano などのテキスト エディターを使用して、次のコマンドを実行します。

sudo nano /etc/docker/daemon.json

ファイルが開いたら、次の内容を貼り付けます。

{
  "log-driver": "syslog",
  "log-opts": {
    "syslog-address": "tcp://logs.example.com:514",
    "syslog-facility": "daemon",
    "tag": "{{.Name}}"
  }
}

この構成では、Docker は syslog ドライバーを使用し、ログをリモート syslog サーバーに中継します。logs.example.com を syslog サーバーのアドレスに置き換えます。

設定が完了したら、次のコマンドを使用して Docker デーモンを再起動し、新しいログ ドライバー設定を適用します。

sudo systemctl restart docker.service

変更があった場合は、 daemon.json ファイルの変更を適用するには、Docker デーモンを再起動する必要があります。

Docker コマンドの例

このセクションでは、Dockerコンテナ、イメージ、ネットワーク、ボリュームを効果的に管理する上で重要な役割を果たすDockerコマンドの使用方法について詳しく説明します。 docker コマンドは、Docker 環境内のタスクを簡素化および自動化するように設計された、強力で多用途なツールセットを提供します。

Dockerコマンドの基礎

Docker をマスターするには、Docker コマンドライン インターフェース (CLI) に慣れることが不可欠です。以下は、Docker の使用中に頻繁に遭遇するコマンドの一覧です。

  • docker run: イメージから新しいコンテナを起動します。
  • docker ps: 現在実行中のコンテナをすべて表示します。
  • docker images: ローカルで利用可能なすべてのイメージを一覧表示します。
  • docker build: Dockerfile から新しいイメージを構築します。
  • docker stop: 現在実行中のコンテナを停止します。
  • docker rm: コンテナを削除します。
  • docker rmi: 画像を削除します。
  • docker network: Docker ネットワークを管理します。
  • docker volume: Docker ボリュームを管理します。

各コマンドには、ニーズに合わせて動作を変更できる独自のオプション セットがあります。各コマンドとそれぞれのオプションについて見ていきましょう。

ドッカー実行 指示

docker run コマンドは、指定されたイメージから新しいコンテナを作成します。たとえば、Debian イメージからコンテナを開始し、その中で対話型シェルを開くには、次のコマンドを使用します。

docker run -it debian:latest /bin/bash

ドッカーps 指示

docker ps コマンドは、現在アクティブなすべてのコンテナを登録するためにデプロイされます。コンテナ ID、関連付けられているイメージ、実行ステータスなど、各コンテナに関する貴重な情報が表示されます。実行中のすべてのコンテナのリストを取得するには、次のように入力します。

docker ps

Docker イメージ 指示

docker images コマンドは、ローカルで利用可能なすべての Docker イメージを一覧表示するタスクを実行します。このコマンドは、各イメージの ID、関連付けられたリポジトリ、タグなどの情報を返します。

docker images

ドッカービルド 指示

docker build コマンドは、Dockerfile から新しい Docker イメージを作成するために使用されます。Dockerfile は基本的に、Docker イメージを構築するための指示を格納するスクリプトです。たとえば、現在のディレクトリにある Dockerfile を使用して「myimage」という名前の新しいイメージを構築するには、次のコマンドを使用します。

docker build -t myimage:latest .

ドッカー停止 指示

docker stop コマンドは実行中の Docker コンテナを正常に終了します。ID を使用して目的のコンテナをターゲットにすることができます。たとえば、ID が「abcdefg」のコンテナを停止するには、次のようにします。

docker stop abcdefg

ドッカーrm 指示

使用 docker rm Dockerコンテナを削除するコマンド。 stop コマンドでは、削除するコンテナのコンテナ ID を指定します。例:

docker rm abcdefg

ドッカー 指示

使用 docker rmi Docker イメージを削除するコマンド。削除するイメージを ID で識別します。例:

docker rmi 1234567

ドッカーネットワーク 指示

docker network コマンドは、Docker ネットワークを作成、一覧表示、削除するための多目的ツールです。たとえば、「mynetwork」という名前の新しいネットワークを作成するには、次のようにします。

docker network create mynetwork

docker ボリューム 指示

最後に、 docker volume コマンドは、Docker ボリュームを管理する機能を提供します。たとえば、「myvolume」という名前の新しいボリュームを作成するには、次のようにします。

docker volume create myvolume

Dockerコンテナ管理のナビゲート

Docker コンテナを効果的に管理することは、Docker 環境の機能性と寿命に大きく影響します。docker コマンドは、Docker コンテナを操作するためのさまざまな重要なサブコマンドを提供します。これらのサブコマンドは、コンテナの作成、操作、変更、削除を容易にします。熟練した開発者でも、コンテナ化の初心者でも、これらのコマンドを理解することで、Docker の操作性が大幅に向上します。

Docker コンテナ管理のコアコマンド

コマンド docker ps は、実行中のすべてのコンテナを列挙するための Docker ツールキットの必須ツールです。このコマンドを実行すると、すべてのアクティブなコンテナ、対応するイメージ、ステータス、および一意のコンテナ ID を確認できます。

docker ps

現在アクティブなDockerコンテナを終了するには、 docker stop コマンドがデプロイされます。停止するコンテナの一意の ID または名前を追加します。

docker stop abcdefg

docker rm コマンドはDockerコンテナを消去するために使用されます。このコマンドは、 docker stopは、コンテナの一意の ID または名前のいずれかを引数として受け入れます。

docker rm abcdefg

コンテナを削除すると、行われた変更がすべて破棄されることに注意してください。変更を保持するには、「docker commit」コマンドを使用して、変更されたコンテナから新しいイメージを作成する必要があります。

docker commit を使用してコンテナの変更を保持する

Dockerコンテナを操作しているときに、コンテナをカスタマイズし、その変更内容を新しいイメージとして保存する必要がある場合があります。これは、 docker commit 指示。

ベースイメージを使用して新しいコンテナを起動し、このコンテナ内で必要な変更を加えます。たとえば、Debian イメージから新しいコンテナを起動し、コンテナ内でシェルを開くことを検討します。

docker run -it --name mycontainer debian:latest /bin/bash

この新しいコンテナでは、設定ファイルの変更や新しいソフトウェアのインストールなど、さまざまなタスクを実行できます。必要な変更を行った後、 docker commit コマンドを実行して、これらの変更をカプセル化した新しいイメージを作成します。 'mycontainer' コンテナで行われた変更を含む 'myimage' という名前の新しいイメージを作成するには、次のコマンドを実行します。

docker commit mycontainer myimage:latest

これで、「mycontainer」コンテナに加えられた変更を組み込んだ「myimage」という名前のイメージが作成されました。この新しいイメージを使用して、更新された構成またはソフトウェアを含む新しいコンテナを生成し、操作します。

docker commit コマンドはコンテナのファイルシステムに加えられた変更のみを保存し、ネットワークとストレージへの変更は保存しないことに注意してください。ネットワークとストレージの変更を保持する必要がある場合は、docker network や docker volume などの他の Docker コマンドの使用を検討してください。

まとめ

ディスカッションでは、Debian LinuxディストリビューションへのDocker Community Edition(CE)のインストールと管理について掘り下げました。Docker CEはコンテナ化のメリットをすべて提供し、開発者がさまざまな環境で分散アプリケーションを構築、出荷、実行できるようにします。ここで説明するDockerコマンドとユースケースは、Dockerコンテナを管理するための基礎知識を提供します。この記事では、次のような基本的なDockerコマンドについて触れましたが、 docker run, docker ps, docker rm、 その他。

Docker エコシステムははるかに広範囲にわたっており、多数のコマンドとオプションを調べて Docker エクスペリエンスを微調整できることを覚えておいてください。

Joshua James

コメントを残す