前言

之前都是在服务器上部署 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. Vulnhun靶机-kioptix level 4-sql注入万能密码拿到权限ssh连接利用mysql-udf漏洞提权

    一.环境搭建 然后选择靶机所在文件夹 信息收集 本靶机ip和攻击机ip 攻击机:192.168.108.130 靶机:192.168.108.141 扫描ip 靶机ip为:192.168.108.14 ...

  2. C++调用动态链接库DLL的隐式链接和显式链接基本方法小结

    C++程序在运行时调用动态链接库,实现逻辑扩展,有两种基本链接方式:隐式链接和显式链接.下面就设立最基本情形实现上述链接. 创建DLL动态链接库 编辑头文件 mydll_3.h: #pragma on ...

  3. CF2029C New Rating

    思路(二分 + 数据结构优化DP) 大致题意为:一个值 \(x\) 初始为 \(0\),然后有一个数组 \(a\),遍历一次数组. 如果 \(a_i > x\),则 \(x + 1\). 如果 ...

  4. 【Matlab】cell 和cell array

    最近写matlab程序和处理数据,用到了cell 和struct ,简单记录一下. 从cell array 删除cell 用{}不能删除,要用(),赋予[]. >> s.a=1 s = 包 ...

  5. VM虚拟机的安装使用

    虚拟机的安装使用 1.安装win10镜像 1.点击创建新虚拟机 2.选择典型,然后下一步 3.稍后安装操作系统,然后下一步 4.选择windows操作系统,版本为win10 x64,然后下一步 5.虚 ...

  6. Vulnhub-sundown

    总结:该靶机是一个wordpress管理系统,需要信息收集得到插件信息,然后搜索插件漏洞,得到一个文件包含exp,利用其得到一个普通用户,利用hydra爆破密码然后ssh连接,信息收集得到一个数据库配 ...

  7. 【独立开发作品】SlideBrowser 一个轻量的滑动浏览器,给你不一样的交互体验

    产品介绍 SlideBrowser是一个滑动浏览器,当你鼠标移动到屏幕边缘,自动出现,当失焦时自动隐藏. 使用场景 在应用全屏模式下查询资料.问 GPT 等 记录一些待办事项或者笔记 查看股市.币市信 ...

  8. js回忆录(2) -- 逻辑表达式,条件语句

    之所以要把逻辑表达式和条件语句放一块写一下,完全是因为二者的联系太过紧密,逻辑运算产生布尔值的结果,而条件语句则根据布尔值决定走那个分支. 逻辑与: &&, 首先逻辑与有逻辑与运算功能 ...

  9. go 限流器 rate

    前言 Golang 官方提供的扩展库里就自带了限流算法的实现,即 golang.org/x/time/rate.该限流器也是基于 Token Bucket(令牌桶) 实现的. 限流器的内部结构 tim ...

  10. 密码编码学与网络安全 原理与实践(第七版)William Stallings---读书笔记(1.1-1.5)

    密码编码学与网络安全 原理与实践(第七版)William Stallings---读书笔记 第一部分 概览 第1章 计算机与网络安全概念 密码算法与协议又可分为4个主要领域: 对称加密 加密任意大小的 ...