在 Ubuntu 24.04 和 Debian 12.10 中安装 Docker 和 Docker Compose,并使用轩辕镜像加速拉取镜像

镜像推荐

在安装之前先宣传一下轩辕镜像

轩辕镜像是国内开发者首选的docker镜像加速服务平台,作为国内领先的镜像加速解决方案提供商,轩辕镜像专注于为开发者打造高效、稳定的容器化开发环境。依托智能 CDN 全球加速网络,平台深度整合 Docker Hub、Google Container Registry(gcr.io)、Kubernetes 官方仓库(registry.k8s.io)等主流镜像源,通过动态路由优化与节点负载均衡技术,实现镜像拉取速度提升 10 倍以上,彻底解决国内外镜像下载卡顿、超时等痛点。

轩辕镜像具有全场景覆盖、智能加速网络、开发者友好体验以及企业级可靠性等优势,以技术驱动效率革新,累计为用户节省超50 万小时 镜像拉取时间,成为开源社区与企业级用户信赖的镜像加速品牌。轩辕镜像为开发者提供了免费版(docker.xuanyuan.me) 和专业版 (xuanyuan.cloud) 选择使用,快点进入官网获取你的专属加速地址吧。

前言:什么是 Docker ?


Docker 是一个快捷、轻便的系统级虚拟化技术,开发者和系统管理员可以使用它构建具备所有必要依赖项的应用程序,并将其作为一个包发布。

Docker 与其他如 VMWare 、 VirtualBox 等工具的虚拟化方式不同,每个虚拟机不需要单独的客户操作系统。所有的 Docker 容器有效地共享同一个主机系统内核。每个容器都在同一个操作系统中的隔离用户空间中运行。

Docker 容器可以在任何 Linux 版本上运行,比如Fedora、Debian、Ubuntu等。我们能相互开发、共享并分发 Docker 镜像,并且无需担心操作系统、软件以及自定义设置,任何事都不用担心,只要我们的主机安装了 Docker ,就能持续开发。简而言之,Docker 能够在任何地方运行!

前文中你读到了两个词:Docker 镜像Docker 容器 ,他们之间有什么区别呢。通俗地说,Docker 镜像是一个描述容器应该如何表现的文件,而 Docker 容器是 Docker 镜像的运行(或停止)状态。更多细节,你可以 Docker 官方的指导手册

下面进入到正式安装环节!!!

Docker 依赖项


为了安装、配置和使用 Docker ,你的系统必须满足下列最低要求:

  1. 64 位 Linux 或 Windows 系统;
  2. 如果使用 Linux ,内核版本必须不低于 3.10;
  3. 能够使用sudo 权限的用户;
  4. 在系统 BIOS 上启用了 VT(虚拟化技术)支持;
  5. 你的服务器应该连接互联网,没有的话就需要使用魔法或者国内的镜像(如轩辕镜像加速器);

在 Linux ,在终端上运行以下命令验证内核以及架构详细信息:

bash 复制代码
uname -a

输出示例:

如图,Ubuntu 系统的服务器内核版本是6.8.0-47-generic ,系统架构是x86_64 ;Debian 系统的服务器内核版本是6.1.0-33-amd64 ,系统架构是x86_64

内核版本需要不低于最低要求的版本,并且是 64 位机器。这样不会有任何问题,我们能顺利安装并使用 Docker 。请注意你使用哪一个 Linux 发行版本不重要,只要你的系统内核版本不低于 3.10 ,并且是 64 位系统,Docker 都会正常运行。

安装 Docker

1、更新升级安装包

打开终端,依次运行下列命令:

bash 复制代码
sudo apt update
sudo apt upgrade -y
# 可选
sudo apt full-upgrade -y

2、添加 Docker 库

首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:

bash 复制代码
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

然后,运行下列命令添加 Docker 的阿里云 GPG 密钥和添加 Docker 官方库:

  • Ubuntu
bash 复制代码
# ubuntu
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • Debian
bash 复制代码
# debian
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

最后需要更新源列表:

bash 复制代码
sudo apt update

3、安装 Docker CE

运行下列命令在服务器中安装最新 Docker CE:

bash 复制代码
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装完成后,运行如下命令验证 Docker 服务是否在运行:

bash 复制代码
systemctl status docker

如果在输出中看到 Active: active (running),恭喜你,Docker 完成安装且服务已启动并运行!

如果没有运行,运行以下命令运行 Docker 服务:

bash 复制代码
sudo systemctl start docker

使 Docker 服务在每次重启时自动启动:

bash 复制代码
sudo systemctl enable docker

停止运行 Docker 服务需要依次执行以下命令:

bash 复制代码
sudo systemctl stop docker.socket
sudo systemctl stop docker

使用以下命令可以查看已安装的 Docker 版本:

bash 复制代码
sudo docker version

输出示例:

安装 Docker Compose


Docker Compose 是一个可用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,你可以使用 Compose 文件来配置应用程序的服务。然后,使用单个命令,你可以从配置中创建和启动所有服务。

下列任何一种方式都可以安装 Docker Compose 。

方式一:使用二进制文件安装 Docker Compose

1、首先,下载最新版本的 Docker Compose 二进制文件。

bash 复制代码
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、使用下列命令赋予二进制文件可执行权限:

bash 复制代码
sudo chmod +x /usr/local/bin/docker-compose

方式二:使用 pip 安装 Docker Compose

pip 是 Python 包管理器,用来安装使用 Python 编写的应用程序。

使用以下命令安装安装pip

bash 复制代码
sudo apt update
sudo apt install python3-pip -y

安装 pip 后,运行以下命令安装 Docker Compose。下列命令对于所有 Linux 发行版都是相同的!

bash 复制代码
pip install docker-compose

安装完后,运行下列命令可以获取安装的 Docker Compose 版本:

bash 复制代码
docker-compose version

输出示例:

修改 Docker 镜像默认存储位置


我们知道在操作系统当中,默认情况下 Docker 容器的存放位置在 /var/lib/docker 目录下面,可以通过下面命令查看具体位置。

bash 复制代码
# 默认存放位置
sudo docker info | grep "Docker Root Dir"

解决默认存储容量不足的情况,最直接且最有效的方法就是挂载新的分区到该目录。但是在原有系统空间不变的情况下,所以采用软链接的方式,修改镜像和容器的存放路径达到同样的目的。

1、首先停掉 Docker 服务(上面有方法)。

2、然后移动整个 /var/lib/docker 目录到空间较大的目的路径。我的是存储在数据盘 /home/docker 上了。

shell 复制代码
# 移动原有的内容
mv /var/lib/docker /home/docker
# 进行链接
ln -sf /home/docker /var/lib/docker

修改 Docker 配置


修改镜像源

众所周知的原因,国内使用官方的镜像源拉取镜像很慢甚至无法使用,这里推荐使用轩辕镜像(轩辕镜像是国内开发者首选的docker镜像加速服务平台)加速镜像的拉取。在开始配置前,先要去官网获取镜像仓库地址,可以先使用免费版体验轩辕镜像加速,对于稳定性有更高追求的可以使用专业版。对于专业版用户,这里推荐使用免登录镜像仓库地址。使用轩辕镜像的免登录方式,相比传统登录配置,该方式更加简洁高效,无需频繁输入账号密码,有效降低操作复杂度。

以下配置使用轩辕镜像免费版作为演示:

json 复制代码
{
	"registry-mirrors": [
		"https://docker.xuanyuan.me"
	]
}

开启IPv6功能以及修改日志配置

以下配置增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):

json 复制代码
{
	"ipv6": true,
	"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
	"experimental": true,
	"ip6tables": true,
	"log-driver": "json-file",
	"log-opts": {
		"max-size": "20m",
		"max-file": "3"
	}
}

最终写入的配置

bash中运行下面的命令:

bash 复制代码
cat > /etc/docker/daemon.json << EOF
{
	"registry-mirrors": [
		"https://docker.xuanyuan.me",
		"https://docker.1ms.run",
		"https://docker2.awsl9527.cn",
		"https://docker.vpszj.top"
	],
        "ipv6": true,
	"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
	"experimental": true,
	"ip6tables": true,
	"log-driver": "json-file",
	"log-opts": {
		"max-size": "20m",
		"max-file": "3"
	}
}
EOF

然后重启 Docker 服务:

bash 复制代码
sudo systemctl restart docker.socket docker.service

结束


至此,恭喜你已经成功安装了 Docker 社区版和 Docker Compose !

相关推荐
修一呀2 小时前
[后端快速搭建]基于 Django+DeepSeek API 快速搭建智能问答后端
后端·python·django
哈基米喜欢哈哈哈2 小时前
Spring Boot 3.5 新特性
java·spring boot·后端
当无2 小时前
Mac 使用Docker部署Mysql镜像,并使用DBever客户端连接
后端
野生的午谦2 小时前
PostgreSQL 部署全记录:Ubuntu从安装到故障排查的完整实践
后端
David爱编程2 小时前
可见性问题的真实案例:为什么线程看不到最新的值?
java·后端
00后程序员3 小时前
移动端网页调试实战,iOS WebKit Debug Proxy 的应用与替代方案
后端
whitepure3 小时前
我如何理解与追求整洁代码
java·后端·代码规范
用户8356290780513 小时前
Java高效读取Excel表格数据教程
java·后端
yinke小琪3 小时前
今天解析一下从代码到架构:Java后端开发的"破局"与"新生"
java·后端·架构
码出极致3 小时前
支付平台资金强一致实践:基于 Seata TCC+DB 模式的余额扣减与渠道支付落地案例
后端·面试