GNU/Linux >> Linux の 問題 >  >> Debian

Debian11にDockerをインストールする方法

Dockerは、アプリケーションの開発、出荷、実行のためのOSレベルの仮想化を提供するオープンプラットフォームのセットです。 Dockerでは、アプリケーションはコンテナーと呼ばれるパッケージ標準化されたユニットとして提供されます。ライブラリや構成ファイルを含め、各コンテナは互いに分離されていますが、それぞれが明確に定義されたネットワークチャネルを介して通信できます。

今のところ、Dockerはソフトウェア開発とDevOpsの標準になっています。何百万もの開発者が、職場で毎日アプリケーションを構築、共有、実行するために使用しています。開発自体からテスト、本番まで、アプリケーション開発のライフサイクルで使用されます。 Dockerを使用すると、アプリケーションの柔軟性と移植性が向上します。アプリケーションは、さまざまなオペレーティングシステムのどこでも簡単な方法で実行できますが、アプリケーション自体は、ライブラリから構成ファイルまで同じままです。

このチュートリアルでは、Debian11BullseyeにDockerをインストールする方法を学びます。また、コンテナの実行とイメージの管理のためのDockerの基本的な使用法についても学習します。

前提条件
  • Debian11サーバー。すべてのパッケージが最新バージョンに更新されていることを確認してください。
  • rootユーザーまたはroot権限を持つユーザー。このユーザーは、新しいパッケージのインストールとシステム構成の編集に使用されます。
依存関係のインストール

まず、Debianシステムにいくつかの基本的なパッケージの依存関係をインストールします。

1.以下のaptコマンドを実行して、新しいパッケージの依存関係をインストールします。

apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

' yと入力します 'を押して'Enter 'これらのパッケージをすべてインストールします。

Dockerリポジトリの追加

このガイドでは、公式のDockerリポジトリからDockerをインストールします。そのため、Debianシステムに新しいDockerリポジトリを追加します。

1.次のコマンドを実行して、DockerのGPGキーを追加します。

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2.その後、以下のコマンドを使用して、Debian11システムのDockerリポジトリを追加します。

echo \
 "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3.' apt updateを実行します '使用可能なすべてのリポジトリを更新/更新するコマンド。

apt update

これで、DockerをDebian11Bullseyeにインストールする準備が整いました。

Debian11へのDockerのインストール

1.システムに以前にDebianリポジトリからDockerがインストールされている場合は、以下のコマンドを使用してDockerを削除する必要があります。

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

2.その後、以下のaptコマンドを使用してDockerを再インストールできます。

apt install docker-ce docker-ce-cli containerd.io

' yと入力します 'を押して'Enter 'インストールを確認します。

3.インストールが完了したら、次のコマンドを実行してインストールを確認します。

サービスが有効になっているかどうかを確認してください。

systemctl is-enabled docker
systemctl is-enabled containerd

DockerとContainerdサービスのステータスを確認します。

systemctl status docker containerd

以下は、得られる同様の出力です。

ご覧のとおり、DockerサービスとContainerdサービスはアクティブ(実行中) 、および両方のサービスが有効 システムの起動時に自動的に実行されます。

非rootユーザーにDockerを許可する

デフォルトでは、Dockerはユーザー' rootのみを許可します 'コンテナを実行します。また、root以外のユーザーがコンテナーを実行できるようにするには、root以外のユーザーをグループ' docker に追加する必要があります。 '、Dockerのインストール中に自動的に作成されます。

1.この例では、ユーザー' johndoeを使用します 'Dockerコンテナを実行します。

次のコマンドを使用して、Debianシステムに新しいユーザー「johndoe」を作成します。

useradd -m -s /bin/bash johndoe

2.その後、次のコマンドを実行して、ユーザー' johndoeを追加します。 'グループへ'docker '。

usermod -aG docker johndoe

3.ユーザー'johndoeとしてログインします '以下のコマンドを使用して、構成を確認します。

su - johndoe

次のdockerコマンドを実行して、インストールを確認します。

docker run hello-world

そして、「 Hello Docker」が表示されます '以下のメッセージ。

以下は、上で実行するdockerコマンドの簡単な説明です。

  • dockerはイメージ名「hello-world」を見つけようとします。イメージがローカルで利用可能な場合、Dockerはコンテナーを実行します。イメージがローカルで利用できない場合、DockerはDockerハブ(デフォルトのDockerイメージリポジトリ)でイメージ「hello-world」を見つけてダウンロードします。
  • >
  • Dockerイメージがダウンロードされると、Dockerはコンテナーを実行します。そして、コンテナはコマンドを実行し、「HelloDocker」メッセージを表示します。

4.次に、以下のdockerコマンドを使用してdockerコンテナーを確認します。

状態が「実行中」のコンテナをチェックしています '。

docker ps

すべてのコンテナをチェックする-現在実行中および停止中のすべてのコンテナが表示されます。

docker ps -a

以下は、以下と同様の出力です。

ご覧のとおり、新しいコンテナ名' bold_bartix 'はベースイメージ'hello-worldで作成されます 'であり、コンテナの現在のステータスは'終了です。 'または停止しました。スクリーンショットのコンテナ名「bold_bartix」はDockerによってランダムに選択されていますが、コンテナの名前を指定できます。

Dockerの基本的な使用法

この段階では、イメージとコンテナーを管理するためのDockerの非常に基本的な使用法を学習します。

1.まず、次のコマンドを使用してDockerイメージをローカルコンピューターにダウンロードします。

docker pull nginx:alpine

このコマンドは、Dockerイメージ名' nginxをダウンロードします 'とタグ'高山 'システムに。

用語'タグ 'は画像自体のバージョンのようなものです。 ' nginx:alpine 'は'nginxを意味します 'タグ付きの画像'高山 '、これはAlpineLinuxオペレーティングシステムに基づくことを意味します。公式のDocker-HubリポジトリでDockerイメージの利用可能なすべてのタグを常に確認してください。

以下は、Dockerイメージで使用可能なすべてのタグの例です' nginx '。

ローカルシステムで使用可能なすべてのDockerイメージを確認するには、次のdockerコマンドを実行します。

docker images

以下のような出力が表示されます。

ご覧のとおり、2つのDockerイメージ、 nginx:alpine があります およびhello-world

2.次に、次のコマンドを実行してコンテナを実行します。

docker run -it --rm -d -p 8080:80 --name web nginx:alpine

これで、新しいコンテナのランダムな文字列と番号が取得されます。

知っておくべきオプション:

  • -i または--interactive--接続されていない場合でもコンテナSTDINを開いたままにします。
  • -t または--tty-端末をコンテナのSTDINおよびSTDOUTに接続する疑似端末を割り当てます。
  • -rm -コンテナが終了または停止すると、コンテナが自動的に削除されます。
  • -d -コンテナをバックグラウンドで実行し、実行後にコンテナをアタッチ解除します。
  • -p 8080:80 -コンテナとホストシステム間のポートをマッピングします。ポート'80 'コンテナ ホストシステムにマッピングされています ポート'8080 '。
  • -名前のウェブ -新しいコンテナ名を「web」として指定します '。
  • nginx:alpine -使用するDockerイメージは'nginx:alpine '。

次に、以下のコマンドを使用して実行中のコンテナを確認します。

docker ps

以下と同様の結果が表示されます。

Nginxコンテナを確認するには、ウェブブラウザを開き、サーバーのIPアドレスをポート' 8080で入力します '。

http://192.168.1.10:8080/

そして、コンテナの webからNginxインデックスページが表示されます。 '以下のように。

3.次に、次のdockerコマンドを実行して、コンテナのログを確認できます。

docker logs web

また、コンテナのすべてのログが最初から最後まで表示されます。

ログ出力を制限するには、「-tail n」を使用できます。 'オプションは以下のとおりです。

docker logs --tail 10 web

そして、最後の10行が表示されます コンテナログの。

4.ここで、Dockerコンテナーを停止するには、以下のDockerコマンドを実行できます。

docker stop web

その後、次のコマンドを使用して実行中のコンテナを確認します。

docker ps
docker ps -a

以下のような出力が表示されます。

'ウェブ 'コンテナは停止し、自動的に削除されます。これは、オプション'-rmを使用しているためです。 'コンテナを実行するとき。

5.次に、カスタムボリュームでコンテナを実行する方法を学習します。ホストマシン上のディレクトリは、Dockerコンテナのボリュームとして使用されます。

新しい'データを作成します 'ディレクトリとカスタム'index.html '次のコマンドを使用してファイルします。

mkdir -p ~/data/
nano ~/data/index.html

カスタムの'index.htmlをコピーして貼り付けます '以下のスクリプト。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Docker Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container</h2>
</body>
</html>

' Ctrl + x を押して、構成を保存します 'ボタン、' yと入力します '、次に' Enter '。

次に、以下のdockerコマンドを使用して新しいコンテナを作成します。

docker run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine

これで、コンテナの乱数と文字列を取得できます。

オプション'-v〜/ data:/ usr / share / nginx / html 'は'〜/ dataをマウントします 'ローカルマシン上の'/ usr / share / nginx / htmlのコンテナへ 'ディレクトリ。

次に、次のコマンドを使用してDockerコンテナを確認します。

docker ps

そして、以下のような出力が表示されます。

次に、Webブラウザを再度開き、ポート' 8080を付けてサーバーのIPアドレスを入力します。 '以下のように。

http://192.168.1.10:8080/

そして、上に作成したカスタムの「index.html」が表示されます。これは、「〜/ data」を意味します。 'ディレクトリはコンテナにマウントされます'/ usr / share / nginx / html 'ディレクトリ。

6.さらに、現在実行中のコンテナ' webにログインできます。 '以下のdockerコマンドを実行します。

まず、コンテナのウェブを確認します 'が実行されています。

docker ps

次に、以下のコマンドを使用してコンテナ「web」に接続します。

docker exec -it web /bin/sh

コンテナ内で、次のコマンドを使用してコンテナのホスト名を確認します。

hostname

' ipを使用してコンテナのIPアドレスを確認します '以下のコマンド。

ip a

次のコマンドを使用して、コンテナのルーティングテーブルを確認します。

route -n

以下は、得られる同様の出力です。

現在の環境をクリーンアップするには、「ウェブ」を停止します '次のコマンドを使用するコンテナ。

docker stop web

また、ステータスが「終了」のすべてのコンテナを削除できます '以下のコマンドを使用します。

docker rm $(docker ps --filter "status=exited" -q)
結論

おめでとうございます!これで、Debian11BullseyeにDockerが正常にインストールされました。また、Docker-Hubからイメージをプルし、Dockerコンテナーを実行し、Dockerコンテナーのステータス、ログ、およびDockerボリュームの基本的な使用法を確認するためのDockerの基本的な使用法を学習しました。次のステップでは、アプリケーション用のカスタムDockerイメージを作成して、DockerHubリポジトリにプッシュすることができます。


Debian
  1. DockerEngineをDebian11にインストールする方法

  2. DockerをDebian9にインストールする方法(Stretch)

  3. Debian11にdockerをインストールして設定する方法

  1. Debian10BusterにDockerをインストールする方法

  2. Debian 10BusterLinuxにDockerをインストールする方法

  3. Debian9にRをインストールする方法

  1. Debian10にRをインストールする方法

  2. Debian9にDockerをインストールする方法

  3. Debian10にDockerをインストールする方法