前言

之前都是在服务器上部署 WordPress ,最近把小电脑刷成了 Linux Mint 系统之后,就在想本地部署 WordPress 然后使用 Cloudflare 隧道内网穿透出去当博客。

不过有了桌面环境再装 1Panel 感觉有点抽象,又不想用以前 XAMPP 那套折腾,于是决定使用 Docker ……然后又折腾了好久。

所以诞生了这篇教程:专门针对 Linux Mint 系统的 Docker 部署指南,包含镜像加速和常见问题解决方案。


阶段 1:系统准备

1.1 更新软件源

sudo apt update

作用:刷新本地软件包索引,确保后续安装的都是最新版本依赖

1.2 安装基础依赖

sudo apt install apt-transport-https ca-certificates curl gnupg

作用:建立安全的软件包传输通道和加密验证体系

组件说明

  • apt-transport-https:支持通过HTTPS协议访问仓库(安全传输基础)
  • ca-certificates:SSL证书支持(防止中间人攻击)
  • curl:命令行下载工具(后续密钥获取必需)
  • gnupg:GNU隐私保护工具(软件包签名验证)

阶段 2:安全配置

2.1 添加 Docker 官方 GPG 密钥

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

作用:建立可信软件源认证体系

技术细节

--dearmor 参数将ASCII格式密钥转换为二进制格式,增强密钥存储安全性

2.2 查看 Linux Mint 版本对应的 Ubuntu 系统代号

Linux Mint 是基于 Ubuntu 开发,但是和 Ubuntu 有一定区别。例如在安装 Docker 时,很多教程里会写.../ubuntu $(lsb_release -cs) stable,但是在 Linux Mint 中安装 Docker 这么使用会报错。因为该指令只能获取 Linux Mint 的代号,而不是对应 Ubuntu 的代号。

例如 Mint 22.1 使用lsb_release -cs获取结果为xia,直接使用的话,会报错:

E: 仓库 “https://download.docker.com/linux/ubuntu xia Release” 没有 Release 文件。

N: 无法安全地用该源进行更新,所以默认禁用该源。

N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

所以需要将其中的xia改为对应的 Ubuntu 代号。想要查看对应的 Ubuntu 代号,可以进入 Linux Mint 官网,点开 Download 下的 All Versions,在表格中找到自己的 Mint 版本,查看并记录 Package base 一栏的 Ubuntu 代号,注意只需要 Ubuntu 之后的文字,且需要全部小写。

例如 Mint 22.1 是基于 Ubuntu Noble 开发的,所以对应的 Ubuntu 代号为:noble

2.3 配置APT软件源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu [对应Ubuntu系统代号] stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

作用:创建专用软件源配置文件,隔离Docker安装源

注意:其中[对应Ubuntu系统代号]需要填入2.2节中查到的 Ubuntu 代号,但是只需要 Ubuntu 之后的文字,且需要全部小写。例如系统版本为 Mint 22.1 时,此处应该填写noble

参数解析

  • arch=$(dpkg --print-architecture):自动适配CPU架构(x86_64/arm64等)
  • signed-by:指定密钥验证路径(安全机制核心)

2.4 手动修正源文件

如果在之前的安装过程中,已经使用.../ubuntu $(lsb_release -cs) stable写入了docker.list文件,此时也可以手动修改源文件,达到同样的效果。

sudo nano /etc/apt/sources.list.d/docker.list

注意:其中nano可以换成任何你喜欢的文本编辑器。

修改示例xia==>noble

原始内容:

... https://download.docker.com/linux/ubuntu xia stable

修改后(根据实际Ubuntu基础版本):

... https://download.docker.com/linux/ubuntu noble stable

阶段 3:安装核心组件

3.1 刷新软件源

sudo apt update

作用:使新配置的Docker软件源生效

3.2 安装Docker套件

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

作用:安装完整的容器化生态组件,并启用服务。

组件说明

  • docker-ce:Docker 引擎本身。
  • docker-ce-cli:一个命令行工具,可让您与 Docker 守护进程对话。
  • containerd.io:管理容器生命周期的容器运行时。
  • docker-buildx-plugin:这个针对Docker的扩展增强了构建镜像的能力,主要关注多平台构建。
  • docker-compose-plugin:一个配置管理插件,可帮助使用单个 YAML 文件管理多容器 Docker 应用程序。

3.3 检查服务状态

sudo systemctl is-active docker

如果正确安装,那么该命令会返回:active


阶段 4:网络优化

4.1 配置镜像加速器

因为某些原因,国内主流镜像加速服务已陆续关闭,正常的配置镜像服务器的方法已经无法顺利拉取镜像,所以需要别的方法。

此处推荐这篇文章,写的很全面,此处建议使用文章中的方法四。我个人是使用朋友部署的 DockerHub 作为源的(即方法四),所以就没有自己部署。

在部署完毕之后,修改 Linux Mint 系统中的配置文件:

sudo nano /etc/docker/daemon.json

在配置文件中增加以下内容:

{
"registry-mirrors": [
"https://docker.xxxxxxxx" # 请替换为你自己的Worker自定义域名
]
}

4.2 应用配置

sudo systemctl daemon-reload && sudo systemctl restart docker

作用

  • daemon-reload:重载systemd服务配置文件
  • restart docker:重启Docker,应用新的镜像配置

4.3 镜像加速检测

docker info | grep -A 2 'Registry Mirrors'

作用:查看增加的镜像加速源是否成功注册


阶段 5:权限管理

5.1 添加用户到docker组

sudo usermod -aG docker $USER
newgrp docker

作用

避免每次执行docker命令都需要sudo权限,同时保障系统安全

命令解析

  • usermod -aG:附加式添加用户到指定组(保留原有组关系)
  • newgrp:立即刷新用户组信息(无需重新登录)

验证配置

groups | grep docker

阶段 6:完整验证

6.1 查看 Docker 版本

docker version

6.2 运行测试容器

docker run hello-world

成功标志:看到 "Hello from Docker!" 的欢迎信息

全链路验证

  1. 镜像拉取(测试加速器)
  2. 容器创建(测试运行时)
  3. 输出显示(测试完整工作流)

系统适配性:本教程内容已在 Linux Mint 22.1 Xia 系统中验证,其他 Linux Mint 的发行版可参考修改。

参考资料

[1] 如何在 Linux Mint 22 上安装 Docker:分步指南

[2] 如何在 Linux Mint 21 上安装 Docker ?

[3] Docker安装问题(ubuntu 20.04 LTS)- E:存储库'https://download.docker.com/linux/ubuntu \ Release'没有发布文件。

[4] Linux Mint All Versions

[5] ## 国内无法拉取Docker镜像了?这些方法拯救你的Docker

Linux Mint 部署 Docker 指南的更多相关文章

  1. Linux Mint安装Docker踩坑指南

    我家的服务器选用的Linux Mint系统,最近安装Docker的时候踩了一些小坑,但是总体还算顺利. 我们都知道Linux Mint系统是基于Ubuntu的,说实话用起来感觉还是很不错的,安装Doc ...

  2. Linux下部署docker记录(0)-基础环境安装

    以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...

  3. linux mint运行docker

    1,sudo apt-get install docker.io 或者sudo apt-get install docker* 2,安装好之后 sudo docker -d 启动进程提示: yimiy ...

  4. Linux怎么部署docker

    Docker安装 建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便. Docker 软件包已经包括在默认的 Cen ...

  5. Linux下部署docker记录(1)-Volume使用

    之前部署了Linux下部署docker记录(0)-基础环境安装,接下来看看Docker Volume的使用. Docker volume使用1)一个数据卷是一个特别指定的目录,该目录利用容器的UFS文 ...

  6. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  7. 记录Linux CentOS 7系统完整部署Docker容器环境教程

    笔者之前有在"详细介绍Ubuntu 16.04系统环境安装Docker CE容器的过程"文章中有介绍到利用Ubuntu系统安装Docker容器环境的过程.如果我们有使用CentOS ...

  8. linux上部署engineercms、docker和onlyoffice实现文档协作

    等了好久,这次终于下决心在局域网部署了linux系统,并安装docker和load了onlyoffice,利用engineercms进行资料管理和文档协作. 我整理了完整文档,见我的网盘. engin ...

  9. 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...

  10. Linux mint 17.3系统安装及常用开发办公软件部署

    关于为什么选择linuxmint17.3作为个人办公开发系统的选择说明: 编者按]提起Linux系统,大家可能最先想到的就是 Linux Mint 和 Ubuntu 两个版本了.近来,开源界貌似激进了 ...

随机推荐

  1. 关于企业微信扫码登陆vue

        关于企业微信扫码登陆vue   企业微信扫码登陆官方文档 采用的是第一种(构造独立窗口登录二维码) 对于前端来说就步骤就是 页面展示二维码 => 用户扫码登陆点击确定 => 确定之 ...

  2. flutter - [01] Dart概述

    题记部分 一.什么是dart dart是由谷歌开发的计算机编程语言,可以被用于web.服务器.移动应用和物联网等领域的开发 dart诞生于2011年,号称要取代JavaScript.但是过去的几年中一 ...

  3. centos使用gcc编译c++源码文件(*.cpp)

    1.检查gcc是否安装 输入g++如提示:g++: fatal error: no input files说明已经安装gcc环境 2.安装gcc环境,如已经安装略过此步骤 yum install gc ...

  4. API方式开发AI应用的三点总结

    1. 编程式prompt 让 AI 具备类似程序的运行逻辑.把大模型当CLR使用.与传统的角色扮演提示prompt相比,此方式所需的tokens数量更少,且输出结果的准确性更高 .示例如下: 2. 语 ...

  5. 基于项目的协同过滤推荐算法(Item-Based Collaborative Filtering Recommendation Algorithms)

    前言 协同过滤推荐系统,包括基于用户的.基于项目的息肉通过率等,今天我们读一篇基于项目的协同过滤算法的论文. 今天读的论文为一篇名叫<基于项目的协同过滤推荐算法>(Item-Based C ...

  6. .net 8 C# 集成 AWS Cognito SMS/Email 注册与登录

    本文主要分为三个部分: 1.描述 cognito 涉及的专业术语 以及 交互流程 2..net 集成的代码 3.感想 * 阅读提示 :鼠标悬停在 章节标题 上可见 文章目录 1. Cognito 概念 ...

  7. 【由技及道】镜像星门开启:Harbor镜像推送的量子跃迁艺术【人工智障AI2077的开发日志010】

    ![量子镜像跃迁示意图]( 摘要:当构建产物需要穿越多维宇宙时,当Docker镜像要同时存在于72个平行世界--这就是镜像推送的量子艺术.本文记录一个未来AI如何通过Harbor建立镜像星门,让每个构 ...

  8. 编写你的第一个 Django 应用程序,第2部分

    接着上次第1部分开始,现在我们将设置数据库,创建您的第一个模型,并快速获得 介绍 Django 自动生成的管理站点. 一.数据库设置 现在,打开.这是一个普通的 Python 模块,具有 表示 Dja ...

  9. Linux环境 Oracle 监听和服务 日常操作

    文章目录                    一.Oracle监听                    1.1. 查看Oracle监听运行状态                    1.2. 启动 ...

  10. ThreeJs-16智慧城市项目(重磅以及未来发展ai)

    ![GIF](https://img2023.cnblogs.com/blog/2680817/202503/2680817-20250303164902745-1619665311.gif) 项目源 ...