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

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

Dockerはオープンソースのコンテナ化プラットフォームです。これにより、開発者はアプリケーションをコンテナにパッケージ化できます。これは、アプリケーションのソースコードとオペレーティングシステム(OS)ライブラリを組み合わせた標準化された実行可能コンポーネントと、そのコードを任意の環境で実行するために必要な依存関係です。

Dockerは、OSレベルの仮想化を使用して、コンテナーと呼ばれるパッケージでソフトウェアを配信するサービス製品としてのプラットフォームのセットです。コンテナは互いに分離されており、独自のソフトウェア、ライブラリ、および構成ファイルをバンドルしています。それらは、明確に定義されたチャネルを介して相互に通信できます。

これらのリンクも確認してください:

  • Ubuntu20.04にDockerをインストールして使用する方法
  • Centos8でdockerをインストールして構成する方法
  • Fedora34/35でdockerをインストールして設定する方法
  • Dockerの使用を開始する例を使用して作成する
  • ビルドエージェントとしてのDocker–DockerでJenkinsビルドを実行する

前提条件

フォローするには、次のことを確認してください。

  • 最新のDebian11システム
  • システムからのインターネットアクセス
  • rootアクセスまたはsudoアクセスを持つユーザー
  • Linuxターミナルの知識

目次

  1. システムパッケージが最新であることを確認してください
  2. 以前のバージョンがある場合はアンインストールします
  3. リポジトリを使用してDockerエンジンをインストールします
  4. パッケージからDockerエンジンをインストールします
  5. コンビニエンススクリプトを使用してインストール
  6. インストールを確認する
  7. Sudoを使用せずにDockerコマンドを実行する
  8. 必要がなくなったときにDockerをアンインストールする

1。システムパッケージが最新であることを確認してください

先に進む前に、パッケージが更新されていることを確認しましょう

sudo apt update
sudo apt upgrade -y

2。以前のバージョンがある場合はアンインストールします

古いバージョンのDockerを提供するパッケージは、dockerです。 、docker.io 、またはdocker-engine
このコマンドを使用して、これらのパッケージがシステムに存在しないことを確認しましょう:

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

apt-getがこれらのパッケージがインストールされていないことを報告しても問題ありません。

dockerのインストール

ニーズに応じて、さまざまな方法でDockerEngineをインストールできます。

  • aptを使用してDockerリポジトリを設定し、Dockerをインストールできます
  • DEBパッケージをダウンロードして、手動でインストールできます
  • 自動化された便利なスクリプトを使用してDockerをインストールすることを選択できます

3。リポジトリを使用してDockerエンジンをインストールします

新しいホストでは、Dockerリポジトリは存在しません。新しいホストマシンで初めて、Dockerリポジトリを設定する必要があります。その後、リポジトリからDockerをインストールして更新できます。

次のパッケージをインストールして、aptがHTTPS経由でリポジトリを使用できるようにします。

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

Dockerの公式GPGキーを追加します:

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

次のコマンドを使用して、安定したリポジトリを設定します。 毎晩を追加するには またはテスト リポジトリに、nightlyという単語を追加します またはtest (または両方)stableという単語の後 以下のコマンドで。

echo \
  "deb [arch=$(dpkg --print-architecture) 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

Dockerエンジンのインストール

新しいリポジトリを追加したので、aptパッケージインデックスを更新します:

sudo apt-get update

それでは、最新バージョンのDockerEngineとコンテナ化されたusiをインストールしましょう

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

オプション:特定のバージョンをインストールする

特定のバージョンを必要とする要件がある場合は、そうすることができます。特定のバージョンをインストールするには:
1。リポジトリで利用可能なバージョンを一覧表示します:

$ sudo apt-cache madison docker-ce
 docker-ce | 5:20.10.9~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.8~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.7~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.6~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages

これで、2番目の列のバージョン文字列を使用して特定のバージョンをインストールできます。たとえば、5:20.10.7~3-0~debian-bullseye

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

例:

sudo apt-get install docker-ce=5:20.10.7~3-0 docker-ce-cli=5:20.10.7~3-0 containerd.io

インストールが完了すると、Dockerデーモンが自動的に起動します。

4。パッケージからDockerエンジンをインストールします

Dockerのリポジトリを使用してDockerEngineをインストールできない場合は、.debをダウンロードできます。 リリース用のファイルを作成し、手動でインストールします。 Dockerをアップグレードするたびに、新しいファイルをダウンロードする必要があります。

https://download.docker.com/linux/debian/dists/にアクセスし、Debianバージョン–(Bullseye)を選択してから、pool/stable/にアクセスします。 、amd64を選択します 、armhf 、またはarm64 、インストールするDockerEngineバージョンの.debファイルをダウンロードします。

Docker Engineをインストールし、以下のパスをDockerパッケージをダウンロードしたパスに変更します。

 sudo dpkg -i /path/to/package.deb

インストールが完了すると、Dockerデーモンが自動的に起動します。

5。コンビニエンススクリプトを使用してインストールする

Dockerは、get.docker.comで便利なスクリプトを提供して、Dockerを開発環境に迅速かつ非対話的にインストールします。

この例では、get.docker.comからスクリプトをダウンロードして実行し、Linuxに最新の安定したDockerリリースをインストールします。

 curl -fsSL https://get.docker.com -o get-docker.sh
 sudo sh get-docker.sh

6。インストールを確認する

インストール時に、dockerはデーモンとして実行されます。 Dockerが実行されていることを確認するには、systemctl status dockerを使用します コマンド:

$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-10-19 04:10:32 UTC; 4min 16s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 13456 (dockerd)
      Tasks: 7
     Memory: 39.0M
        CPU: 265ms
     CGroup: /system.slice/docker.service
             └─13456 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789071579Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789278242Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/container>
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789447226Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.059851510Z" level=info msg="Loading containers: start."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.267528805Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemo>
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.337295417Z" level=info msg="Loading containers: done."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363462993Z" level=info msg="Docker daemon" commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363783617Z" level=info msg="Daemon has completed initialization"

Active: active (running) dockerが正常に開始されたことを示しています。

hello-worldを実行できます Dockerが期待どおりに機能することをテストするための画像:

 sudo docker run hello-world

このコマンドは、テストイメージをダウンロードし、コンテナーで実行します。コンテナが実行されると、情報メッセージが出力されて終了します。

この出力を取得し、正常に動作することを示しています:

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

7。 Sudoを使用せずにDockerコマンドを実行する

デフォルトでは、dockerコマンドは、rootユーザー、またはDockerのインストールプロセス中に自動的に作成されるdockerグループのユーザーのみが実行できます。 dockerコマンドの前にsudoを付けずに、またはdockerグループに含まずに実行しようとすると、次のような出力が得られます。

$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

dockerコマンドを実行するたびにsudoと入力しないようにするには、ユーザー名をdockerグループに追加します。

sudo usermod -aG docker ${USER}

新しいグループメンバーシップを適用するには、サーバーからログアウトして再度ログインするか、次のように入力します。

sudo su - ${USER}

続行するには、ユーザーのパスワードを入力するよう求められます。

次のように入力して、ユーザーがDockerグループに追加されたことを確認します。

id -nG

これが表示され、Dockerグループに属していることを確認します

$ id -nG
admin docker

これで、sudoなしでDockerを実行できます:
イメージを実行してテストしましょう。

$ docker run --rm -it --name alpine --entrypoint /bin/sh alpine:3
Unable to find image 'alpine:3' locally
3: Pulling from library/alpine
a0d0a0d46f8b: Pull complete
Digest: sha256:e1c082e3d3c45cccac829840a25941e679c25d438cc8412c2fa221cf1a824e6a
Status: Downloaded newer image for alpine:3
/ #

システムにdockerが正常にインストールされました!

8。必要がなくなったときにDockerをアンインストールする

Docker Engineをシステムから完全に消去するには、Docker Engine、CLI、およびContainerdパッケージをアンインストールする必要があります。

 sudo apt-get purge docker-ce docker-ce-cli containerd.io -y

ホスト上のイメージ、コンテナー、ボリューム、またはカスタマイズされた構成ファイルは、自動的に削除されません。すべてのイメージ、コンテナ、およびボリュームを削除するには:

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

編集した構成ファイルは手動で削除する必要があります。

結論

このガイドでは、Debian11システムにdockerをインストールすることができました。


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

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

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

  1. Debian9にDockerをインストールして使用する方法

  2. Debian9にDockerComposeをインストールして使用する方法

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

  1. Debian9にVNCをインストールして設定する方法

  2. Debian9にRedisをインストールして設定する方法

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