Docker是一种开源的应用容器引擎,可以在容器的隔离环境中创建和运行应用程序,通过它可以将应用程序及其依赖包打包到一个轻量可移植的容器中。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/