Dockerはオープンソースのコンテナ化プラットフォームです。これにより、開発者はアプリケーションをコンテナにパッケージ化できます。これは、アプリケーションのソースコードとオペレーティングシステム(OS)ライブラリを組み合わせた標準化された実行可能コンポーネントと、そのコードを任意の環境で実行するために必要な依存関係です。
Dockerは、OSレベルの仮想化を使用して、コンテナーと呼ばれるパッケージでソフトウェアを配信するサービス製品としてのプラットフォームのセットです。コンテナは互いに分離されており、独自のソフトウェア、ライブラリ、および構成ファイルをバンドルしています。それらは、明確に定義されたチャネルを介して相互に通信できます。
これらのリンクも確認してください:
- Ubuntu20.04にDockerをインストールして使用する方法
- Centos8でdockerをインストールして構成する方法
- Fedora34/35でdockerをインストールして設定する方法
- Dockerの使用を開始する例を使用して作成する
- ビルドエージェントとしてのDocker–DockerでJenkinsビルドを実行する
前提条件
フォローするには、次のことを確認してください。
- 最新のDebian11システム
- システムからのインターネットアクセス
- rootアクセスまたはsudoアクセスを持つユーザー
- Linuxターミナルの知識
目次
- システムパッケージが最新であることを確認してください
- 以前のバージョンがある場合はアンインストールします
- リポジトリを使用してDockerエンジンをインストールします
- パッケージからDockerエンジンをインストールします
- コンビニエンススクリプトを使用してインストール
- インストールを確認する
- Sudoを使用せずにDockerコマンドを実行する
- 必要がなくなったときに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をインストールすることができました。