前言

之前都是在服务器上部署 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. 全面详解C语言使用cJSON解析JSON字符[转载]

    cJSON对象的实现采用了树形结构,每个对象是树的一个节点,每个节点由cJSON这个结构体组成,对象中的元素也由cJSON这个结构体组成.同一层的对象和元素是双向链表结构,由next和prev指针链接 ...

  2. P4688 [Ynoi Easy Round 2016] 掉进兔子洞

    莫队可以维护种类数 但是无法维护出现次数 考虑离散化以后我们后面腾出了一些空位 那么我们就可以填进那些坑里面 这样做我们就可以用 bitset 直接做与运算 那么 莫队 + bitset 即可

  3. 【练习回顾】dfs迷宫+路径打印

    很直接的dfs.递归+栈--不知道以后会不会生疏 进入一次dfs,相当于走一步,入栈:结束一次dfs,相当于这一步考虑结束,出栈 笑死,y1竟然是一个函数 突然发现写的有点槽,可以把dfs形式化为&q ...

  4. 【P0】Logisim部件级实验/有限状态机

    课上 过得十分狼狈.经鉴定孩子可能脑子拗 T1 投票决议 组内投票,赞成>反对,则通过:组长拥有一票否决权. 信号名 方向 描述 [1:0] s Input 2'b00 赞成2'b01 反对2' ...

  5. OpenGL与GLSL各版本对应说明

    OpenGL 4.6 (API Core Profile) (API Compatibility Profile) OpenGL Shading Language 4.60 Specification ...

  6. 独立博客与秘密基地,以及对UI设计中拟物态的怀念

    小时候的秘密基地 哪个人小的时候不想有一个"秘密基地"呢?后来人长大了,心里还有这个小欲望,想有一块属于自己的空间,可以自由装饰,可以藏喜欢的东西,不受社会道德约束,不受规则铁蹄践 ...

  7. 操作系统educative版本-笔记1

    Qustions How can we summarize a Process? At any instant in time, we can summarize a process by takin ...

  8. 多态的前提--java进阶day02

    1.多态的前提条件 第一点和第二点都很好理解,第三点父类引用指向子类对象是什么意思?以下图进行讲解 我们以前的写法,如下图,叫做子类引用指向子类 那父类引用呢?就是把左边换成父类Animal即可 因为 ...

  9. 【教程】Anaconda安装

    零.Anaconda介绍 Anaconda个人版是一个免费.易于安装的包管理器.环境管理器和Python发行版(所以装了Anaconda就可以不用再另外装Python了),有提供非常多的开源包,用An ...

  10. D常用快捷键大全(转)

    Ctrl+PageUp将光标移至本屏的第一行,屏幕不滚动.Ctrl+PageDown将光标移至本屏的最后一行,屏幕不滚动.Ctrl+↓向下滚动屏幕,光标跟随滚动不出本屏.Ctrl+↑向上滚动屏幕,光标 ...