⚡ Linux Debian 安装与配置 Docker

发布于:2025-05-22 ⋅ 阅读:(25) ⋅ 点赞:(0)

🐧 Linux Debian 安装与配置 Docker


📦 1. Docker 简介

Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个标准化的镜像中,然后在任何地方快速部署和运行。

Docker 利用了 Linux 的 容器技术(Namespaces 和 Cgroups) 来实现资源隔离,它相比传统虚拟机更轻量、更高效。Docker 支持微服务架构,适合用于持续集成 / 持续部署(CI/CD)流程中。


⬇️ 2. Docker 的下载安装

🧹 2.1 卸载旧版 Docker

执行以下命令卸载旧版 Docker

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

🔧 2.1 安装依赖

执行以下命令更新软件源并安装依赖

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

💡 -y 参数表示自动接受所有提示。

🔐 2.3 添加 Docker GPG 公钥

执行以下命令添加公钥

sudo mkidr -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | \
  sudo gpg --dearmor -o /etc/apt/leyrings/docker.gpg 

⚠️ 这里使用阿里云的镜像,避免因国内网络限制无法访问官方 GPG 公钥。

🧭 2.4 添加 Docker 软件源

执行以下命令添加 Docker 软件源

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://mirrors.aliyun.com/docker-ce/linux/debian \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

⚠️ 使用国内源(阿里云)避免官方镜像不稳定或下载失败。

📥 2.5 安装 Docker

执行以下命令安装 Docker

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plug

⚙️ 2.6 配置 Docker 服务

执行以下命令开启 Docker 服务并设置为开机自启服务

sudo systemctl start docker
sudo systemctl enable docker

✅ 2.7 验证安装

执行以下命令验证 Docker 是否成功安装

docker version
sudo docker run hello-world

⚠️本安装流程只适用于 Debian 版本的 Linux 系统,如果是 CentOS 或 Ubuntu 按照本流程安装不出意外的话会报错。其实 CentOS 和 Ubuntu 的流程整体差不多,就改一下GPG公钥和镜像源就行了。


⚙️ 3. Docker 的配置

🔁 3.1 配置镜像加速器

再没有任何配置的情况下,docker pull 是 100% 会失败的(docker run 需要 pull 的镜像也会失败)。

编辑配置文件 /etc/docker/daemon.json(如果不存在则创建):

sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

添加以下内容

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.xuanyuan.me"
  ]
}

保存后执行以下命令应用配置并重启 Docker 服务:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker

🌐 3.2 设置 HTTP/HTTPS 代理

docker search 命令默认不会使用镜像加速器,而是通过终端直接访问 Docker Hub 的 API。

所以会出现即使你配置了镜像加速器,并且开启了网络代理(不仅开了KDE的,连终端的也开了),还是 dockers search 失败的情况。

所以我们需要为 Docker 服务设置系统级代理,先创建相关的配置文件

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

在 http-proxy.conf 中写入以下内容(以本地 Clash 代理端口为例):

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"

然后重启服务让配置生效:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker

⚠️docker search 命令成功运行还有一个前提条件,就是你的网络代理软件能正常工作。我这里用的是 Clash 作为网络代理,Clash相关的配置和使用方法详见
Linux Debian 安装与配置 Clash (没过审在我的垃圾箱里)


🛠️ 4. Docker 的基本用法

📦 镜像相关命令

命令 说明
docker search <关键字> 从 Docker Hub 搜索镜像(注意需设置代理)
docker pull <镜像名> 拉取远程镜像到本地
docker images 查看本地已有的镜像
docker rmi <镜像ID或镜像名> 删除本地镜像

🧱 容器相关命令

命令 说明
docker run -it <镜像名> /bin/bash 基于镜像启动容器,并进入交互式终端
docker ps 查看当前运行的容器
docker ps -a 查看所有容器(包括停止的)
docker stop <容器ID或容器名> 停止正在运行的容器
docker start <容器ID或容器名> 启动已存在但停止的容器
docker rm <容器ID或容器名> 删除指定容器

🧰 其他常用命令

命令 说明
docker exec -it <容器ID或容器名> /bin/bash 在运行中的容器中执行命令(常用于进入容器)
docker logs <容器ID或容器名> 查看容器日志输出
docker inspect <容器ID或镜像名> 获取容器或镜像的详细元信息

⚠️ 5. 注意事项

❌ WSL1 限制导致 Docker 无法运行

如果在 2.7 验证安装 的时候出现以下报错:

docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": 
dial unix /var/run/docker.sock: connect: permission denied

说明你在使用 WSL1 的系统, WSL1 本身无法运行 Docker 守护进程。建议使用 Windows 安装 Docker Desktop,或升级为 WSL2。

🐛 Linux 版本问题

如果在 2.5安装 docker 的时候出现以下报错:

E: The repository 'https://download.docker.com/linux/debian jammy Release' does not have a Release file.

说明系统不是 Debian,而可能是 Ubuntu(如 jammy 是 Ubuntu 22.04 的代号)。请确认 2.3 添加 Docker GPG 公钥2.4 添加 Docker 软件源 中添加的 GPG 公钥和软件源是否为 Debian 的版本。

🌐 Docker 镜像失效

如果在 2.7 验证安装 的时候出现以下报错:

docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaitin

说明配置的 Docker 镜像失效导致无法连接上 Docker Hub,请检查 /etc/docker/daemon.json 是否配置了有效镜像:

解决方法请参考 3.1 配置镜像加速器

🕸️ Docker Search 卡住或 i/o timeout

docker search 不使用镜像加速器,直接访问 Docker API,需要配置 HTTP 代理才能正常工作,否则会因被墙而超时。

解决方法请参考 3.2 设置 HTTP/HTTPS 代理


网站公告

今日签到

点亮在社区的每一天
去签到