容器这期视频发了很久了已经,大概过去了几个月吧,没什么人看,我也不明白是我做的不太好还是太难了或没这个需求量少什么的,我已经经历做到最详细了,希望能帮到有需要的人吧
先解释一下docker和容器吧,你可以把容器理解为一个虚拟机,它和虚拟机一样,完全的隔离开来所有东西,但和虚拟机不同的是,容器是直接基于内核运行的,他的损耗几乎可以忽略不计!!!

如果你正在为项目配置环境,或者想在一台 Linux 服务器上轻松运行 Minecraft 服务器,Docker 几乎是当下最省心的方案。它用容器技术把应用和依赖打包在一起,避免了“在我机器上能跑”的经典噩梦。
这篇教程基于 Ubuntu/Debian 系列系统,Ubuntu22.04 64位,不仅提供了一步到位的安装命令,还会逐行解释这些命令背后的逻辑,帮你真正理解自己在做什么。即使你是个 Linux 新手,跟着走也能顺利完成部署——当然我更希望你能去把前面的学一学
这篇文章来自这期视频
在执行任何安装前,先确保系统软件包索引是最新的,同时清理可能存在的旧版 Docker,避免端口、配置文件或依赖冲突。
首先的第一步就是先对系统的包管理和软件进行一次更新
sudo apt update
sudo apt upgrade然后就是用这条指令,彻查系统中是否已安装过 docker.io、docker-compose、podman-docker、containerd、runc 等与 Docker 相关的旧包,如果有就全部卸载。dpkg --get-selections 负责列出已安装软件,cut -f1 只截取包名,apt remove 负责移除。
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)Tips:如果你的系统从未装过 Docker,执行后可能会提示找不到这些包,这是正常现象,无需担心。
Docker 官方仓库使用 HTTPS,因此系统必须具备验证 SSL 证书的能力,以及命令行下载工具。
所以这里我们安装两个程序
sudo apt install ca-certificates curlca-certificates:包含根证书,让系统能够信任 HTTPS 网站的身份,防止后续下载密钥时报证书错误。
curl:命令行下载工具,用于从 Docker 官网获取 GPG 公钥。(可以用wget替代如果你会的话)
Linux 软件包管理器需要验证软件来源的可靠性,因此我们要先把 Docker 官方的“数字签名公钥”导入系统。
GPG密钥来自docker官方,当我们后面下载了docker时候,他会将下载下来的东西和密钥进行校验,防止下载了错误的文件或有毒的文件
sudo install -m 0755 -d /etc/apt/keyrings这条指令意思是在 /etc/apt/ 下创建一个名为 keyrings 的目录,专门用于存放第三方软件源的 GPG 密钥。-m 0755 表示设置目录权限为 rwxr-xr-x(所有者可读写执行,其他用户可读可执行)。
然后执行这个任务——使用 curl 从 Docker 官方下载 GPG 公钥,并保存到刚才创建的目录中。
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc-f:如果服务器返回错误(如 404/500),直接静默失败,不显示 HTML 错误页;
-s:静默模式,隐藏下载进度条;
-S:配合 -s 使用,遇到错误时仍然显示错误信息;
-L:如果地址发生了 301/302 跳转,自动跟随到最终地址;
-o:指定保存路径。
如果上一句 curl 因为网络或证书问题下载失败,这是备用方案,使用 wget 重新下载同一份密钥。-O(大写)表示将下载内容保存到指定文件。
sudo wget -O /etc/apt/keyrings/docker.asc https://download.docker.com/linux/ubuntu/gpg修改密钥文件的权限,给 a(所有用户)添加 r(读取)权限。这一步很重要,因为 APT 在更新源时需要读取该密钥来校验软件包签名。
sudo chmod a+r /etc/apt/keyrings/docker.asc我们为系统的包管理添加一下docker的官方源,告诉系统:以后可以从 Docker 官网下载 .deb 软件包。
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF我们来对这又长又臭的一段东西解读一下
在 /etc/apt/sources.list.d/ 下新建一个名为 docker.sources 的源配置文件。这是 Ubuntu 22.04+ 等系统支持的标准 DEB822 格式。
tee:将左侧输入的内容同时写入文件并在屏幕回显,方便你核对;
<<EOF ... EOF:Here Document 语法,将多行文本整体传入 tee;
Types:意思是告诉系统我们添加的源是.deb格式的软件包;
$(. /etc/os-release && echo "..."):动态读取当前系统的版本代号(如 jammy、noble),确保软件源与你的系统版本严格匹配,避免跨版本安装导致依赖错误;写成这个是因为是教程方便大家直接复制使用,你也可以直接把版本号写明上去;
Signed-By:指向刚才下载的 GPG 密钥文件,保证后续从此源下载的软件包都经过 Docker 官方签名验证。
源配置完成后,重新刷新索引,然后安装 Docker 本体及配套组件。
sudo apt update然后我们就可以用这一条指令一键安装 Docker 全家桶
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin前面的sudo apt install 我们应该都明白是什么意思,重点是我们需要知道后面我们安装的是什么东西:
docker-ce:Docker 社区版(Community Edition)核心引擎,负责创建和管理容器;
docker-ce-cli:Docker 命令行客户端,提供我们日常使用的 docker 命令;
containerd.io:底层容器运行时,管理容器的生命周期(创建、启停、销毁);
docker-buildx-plugin:构建插件,支持多平台镜像构建(例如同时编译 x86 和 ARM 版本);
docker-compose-plugin:Compose 插件,让你可以使用 docker compose 命令来编排多容器应用。
sudo systemctl start docker这条就是启动 Docker 守护进程(dockerd)。这是 Docker 的后台主服务,所有容器操作都由它接管。
sudo systemctl status docker这条指令就是查看 Docker 服务的当前运行状态。如果看到绿色的 active (running)(如下图所示),说明服务已正常启动;按键盘上的 q 可退出状态查看界面。

sudo docker run hello-world拉取并运行 Docker 官方提供的测试镜像。如果安装正确,终端会打印出一段带有 “Hello from Docker!” 的欢迎信息,证明你的 Docker 环境已经能够正常拉取镜像并运行容器。
不过很有可能你是无法运行成功的,因为docker的镜像源大多都在海外,拉取是十分艰难的,你可能需要魔法,当然,我们也可以使用国内的镜像源,但在之前的大清洗后,国内留下的镜像源也就寥寥几个,想知道还有什么可以用的可以看这个网站,我们这里以毫秒镜像站举例docker.1ms.run
镜像源的使用方法,我们可以直接在运行的时候把镜像站加在镜像名称前面,这样拉取镜像就会直接去该镜像站拉取
sudo docker run docker.1ms.run/hello-world
出现这么一段话就代表拉取成功,容器也没问题了
当你用上面的方法拉取docker.1ms.run/hello-world 镜像后,如果你sudo docker run hello-world 你会发现它会重新拉取一个新的镜像,因为这两个镜像名字已经不一样了,系统不会认他们两个是同一个镜像
所以,我们不如把镜像源列出一个列表,让docker以后拉取镜像就去这些地方拉取
sudo mkdir -p /etc/docker先创建 Docker 配置文件目录。-p 表示如果目录已存在则不报错,同时自动创建所需的父级目录。
然后向 Docker 守护进程写入配置文件 daemon.json,在其中填入多个镜像加速站地址。当执行 docker pull 时,Docker 会优先尝试从这些镜像站获取镜像层,从而提升下载速度。
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://hub.rat.dev",
"https://dockerproxy.net",
"https://proxy.vvvv.ee"
]
}
EOF最后重载daemon,让docker知道什么守护进程的变化,然后重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker现在你可以尝试去直接拉取镜像,而且你发现这会非常流畅
以下是使用 Docker 时最常用到的几条命令,建议熟悉。
docker pull <镜像名称>作用:从镜像仓库(默认 Docker Hub)下载指定的镜像到本地。例如 docker pull nginx 会下载 Nginx 的最新官方镜像。
docker attach <镜像名称>作用:依附到一个正在运行的容器的主进程上。适合查看容器的实时交互输出,但需要注意:如果你在这个窗口按 Ctrl+C,很可能会直接终止容器主进程,ctrl+p+q退出
docker logs <镜像名称>作用:一次性打印出指定容器的历史日志输出,适合快速排查刚刚发生的错误。
docker logs -f <镜像名称>作用:持续跟踪(follow)容器的日志输出,类似于 tail -f。你会看到一个实时滚动的日志窗口;按 Ctrl+P 然后按 Ctrl+Q 可以安全退出该跟踪模式,而不会停止容器。
docker ps作用:列出当前正在运行中的容器,显示容器 ID、镜像名、创建时间、状态、端口映射等信息。
docker ps -a作用:列出所有容器,包括正在运行的和已经停止的(Exited 状态)。适合查找之前创建但忘记删除的容器。
docker compose up -d作用:在当前目录下寻找 docker-compose.yml 或 compose.yml 文件,并根据其中的定义启动整个多容器应用。-d 表示在后台(detached 模式)运行。
docker rm -f <镜像名称>作用:强制删除一个容器,无论它当前是运行中还是已停止。-f 即 --force。
docker rm <镜像名称>作用:删除一个已经停止的容器。如果容器还在运行,不使用 -f 的话命令会报错,这是一种防止误删的安全机制。
如果你在执行过程中遇到权限问题,记得检查是否在命令前加了 sudo,或者考虑将当前用户加入 docker 用户组(执行 sudo usermod -aG docker $USER 后重新登录)。
通过以上步骤,你已经完成了:
旧环境清理与系统更新;
Docker 官方源的添加与可信密钥配置;
Docker CE、Containerd、Buildx、Compose 等全套组件的安装;
国内镜像加速的配置;
基础容器生命周期管理命令的掌握;
Minecraft 服务器镜像的拉取与运行思路。
Docker 的本质是“一次构建,到处运行”。当你习惯用容器的视角看待服务部署后,会发现无论是开 Web 服务、跑数据库,还是和朋友们联机 Minecraft,都变成了一件异常干净、可复现的事情。
祝你玩得开心,感谢观看