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

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

Dockerは、任意のアプリケーションからコンテナーと呼ばれる分離された環境でアプリケーションを簡単に作成して実行するためのオープンソースソフトウェアです。これは、アプリケーションとそのライブラリおよびその他の依存関係をソフトウェア開発用の標準化されたユニットにパッケージ化する効率的な方法を提供します。

Dockerコンテナーは、オペレーティングシステム全体を実行する必要がなく、アプリケーションにサービスを提供する実行可能ファイルのみを実行する必要があるため、仮想マシンよりもはるかに高速で効率的です。

ここでは、Debian11にDockerComunity Edition(CE)をインストールする方法を説明します。

注: Dockerには64ビットバージョンのDebianOSが必要です。

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

古いバージョンを削除する

まず、システムからの依存関係とともに、dockerまたはdocker-engineと呼ばれる古いバージョンのDockerパッケージをアンインストールします。ただし、このアンインストールでは、/ var / lib / docker /ディレクトリにある既存のDockerボリューム、イメージ、およびネットワークは削除されません。

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

Dockerリポジトリのセットアップ

以下のパッケージをインストールして、aptがHTTPS方式をサポートできるようにします。

sudo apt update

sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common

DockerのGPGキーをシステムに追加します。

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

以下のコマンドを実行して、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

リポジトリインデックスを更新します。

sudo apt update

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

aptコマンドを使用してDockerEngineをインストールします。

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

インストール後のDockerのバージョンを確認してください。

docker -v

出力:

Docker version 20.10.8, build 3967b7d

これで、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 Sat 2021-08-21 12:31:37 CDT; 1min 39s ago
TriggeredBy:  docker.socket
       Docs: https://docs.docker.com
   Main PID: 18894 (dockerd)
      Tasks: 8
     Memory: 31.3M
        CPU: 448ms
     CGroup: /system.slice/docker.service
             └─18894 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192715381-05:00" level=info msg="scheme \"unix\" not registered, fallback to default s>
Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192736530-05:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///r>
Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192749042-05:00" level=info msg="ClientConn switching balancer to \"pick_first\"" modu>
Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.429344966-05:00" level=info msg="Loading containers: start."

Dockerのインストールを確認する

Dockerのインストールをテストするために、hello-worldコンテナーを実行します。

sudo docker run hello-world

以下の出力は、DockerEngineがDebianOSに正しくインストールされていることを確認しています。

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38
Status: Downloaded newer image for hello-world:latest

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

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
にアクセスしてください。

root以外のユーザーにDockerコマンドの実行を許可する

デフォルトでは、Dockerデーモンはユーザーrootが所有するUnixソケットを使用するため、通常のユーザーにはDockerコマンドを実行する権限がありません。

docker run hello-world

出力:

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

通常のLinuxユーザーがsudoのプレフィックスを付けずにDockerコンテナーを実行できるようにするには、以下の手順に従います。

dockerというグループが存在しない場合は作成します。

sudo groupadd docker

必要に応じてユーザーを作成します。 itzgeekを自分のユーザー名に置き換えます。

sudo useradd -m -s /bin/bash itzgeek

ユーザーをDockerグループに追加します。

sudo usermod -aG docker itzgeek

ログアウトして再度ログインし、sudoのプレフィックスを付けずにDockerコマンドを実行します。

docker run hello-world

興味深いトピック

Dockerの基本トピック

1:重要なDockerコマンド–Dockerコンテナの操作

2:Dockerイメージの操作–Dockerイメージの構築

3:DockerFileを使用してDockerイメージを構築する方法

Dockerの高度なトピック

1:CentOS7でDockerプライベートレジストリを設定する方法

2:CentOS7にDockerSwarmをインストールして構成する方法

結論

それで全部です。 DockerEngineをDebian11にインストールする方法を学んだことを願っています。


Debian
  1. Debian 9StretchLinuxにDockerエンジンをインストールする方法

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

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

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

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

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

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

  2. Docker EngineをDebian11にインストールする方法(Bullseye)

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