如何在 Debian 11 上安装 Docker

Docker是一种开源的应用容器引擎,可以在容器的隔离环境中创建和运行应用程序,通过它可以将应用程序及其依赖包打包到一个轻量可移植的容器中。Docker 容器比虚拟机更快、更高效,因为它们不必运行整个操作系统,只需运行为应用程序服务的可执行文件。

如何在 Debian 11 上安装 Docker
如何在 Debian 11 上安装 Docker

在本文中,我们将向您介绍如何在 Debian 11 上安装 Docker 社区版。需要注意的是,Docker 需要安装在 64 位版本的 Debian 系统。

在 Debian 11 上安装 Docker

删除旧版本

首先,卸载旧版本的 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 命令安装 Docker 引擎。

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

通过以下输出可以确认,已经在 Debian 系统上安装了 Docker 引擎。

 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:
 The Docker client contacted the Docker daemon.
 The Docker daemon pulled the "hello-world" image from the Docker Hub.
 (amd64)
 The Docker daemon created a new container from that image which runs the
 executable that produces the output you are currently reading.
 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 用户才可以运行。

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

创建一个用户。将 niuqi 替换为自己的用户名。

sudo useradd -m -s /bin/bash niuqi

将用户添加到 docker 组。

sudo usermod -aG docker niuqi

注销并重新登录,然后就可以运行不带 sudo 前缀的 Docker 命令了。

docker run hello-world

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-install-docker-engine-on-debian-11/

(3)
牛奇网牛奇网
上一篇 2022年1月26日 下午11:27
下一篇 2022年1月27日 上午11:34

相关推荐

发表回复

登录后才能评论