目 录CONTENT

文章目录

🎓Linux入门讲解0基础(实战搭建memos)第2课

JIN
JIN
2025-05-17 / 0 评论 / 0 点赞 / 11 阅读 / 0 字
广告 广告

第二节课(1/3):非大陆安装 Docker & Docker Compose

这一节我们来解决最关键的一件事:装上 Docker


2.1、执行命令(非大陆 VPS)

如果你用的是非大陆 VPS(比如 Racknerd纽约腾讯云香港 等),下面这几条命令直接复制运行就行:

# Docker 一键安装
curl -fsSL https://get.docker.com | bash

# Docker Compose 安装
sudo curl -L "https://github.com/docker/compose/releases/download/v2.36.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 设置 Docker 开机自启
sudo systemctl enable docker

2.2、拆词解释(小白速通、老鸟可跳)

我们还是来“逐词拆解”,看看这些命令到底做了啥!


2.2.0 Docker 是什么?

一句话解释:

Docker 就是一种“打包好了一切的万能软件盒子”。


你可以把 Docker 想象成是一个“快餐打包盒”,把软件程序、它需要的环境(比如系统依赖、库、配置等)全都打包在一起,放进一个小盒子里。这种小盒子我们叫做 容器(Container)

这个容器你拿到哪台机器上运行都行 —— 不怕“依赖装不上”,也不怕“系统版本不对”。


2.2.1.1 举个例子:

比如你想在 Ubuntu 服务器上运行一个网站,它需要:

  • Python 3.11
  • 某个版本的 Flask 框架
  • 某些 Linux 系统依赖包
  • 一个配置好的 nginx 网页服务器

用传统方式,你要手动安装、调试这些东西,很容易出错、版本不兼容,搞起来非常麻烦。

但如果别人把整个网站 + 所有环境都“打包”成了一个 Docker 容器,你只要一条命令就能跑起来:

docker run example/website

就像点了一份外卖,热好了就能吃,完全不用自己炒菜!


2.2.1.2 Docker 在 Linux(比如 Ubuntu)里到底干了什么?

在 Ubuntu 中,Docker 起到了两个主要作用:

  1. “虚拟厨房”功能:
    它让每个软件都在“自己的隔离空间”运行,互不干扰,像是一个个微型系统。
    —— 这样你可以在一台机器上同时运行 10 个服务,它们之间互不打架。
  2. “一键部署神器”:
    Docker 容器是标准化的,一份镜像在任何一台装了 Docker 的机器上都能跑。
    —— 极大地方便了部署和备份。

2.2.1.3 为什么大家都在用 Docker?

好处 解释
✅ 轻量 跑得快,不像传统虚拟机那么重。
✅ 隔离性强 一个服务崩了,不会影响别的。
✅ 快速部署 一条命令搞定整个网站或项目。
✅ 开发友好 团队都用一样的容器,不用再“你这能跑,我这报错”。

总之,Docker 就是帮你“打包”和“跑程序”的神器,适合把一个服务一键部署在服务器上,尤其是 Linux 服务器如 Ubuntu。


2.2.1 第一句拆解

curl -fsSL https://get.docker.com | bash

2.2.1.1 curl 是什么?

curl 是一个用来从互联网下载内容的命令行工具。

你可以把它当成“命令行版的浏览器”:

  • 输入网址,它就能下载页面
  • 支持 HTTPS、FTP 等协议
  • 常用于下载脚本、API 请求等

在这条命令里:

curl -fsSL https://get.docker.com | bash

它就是从 https://get.docker.com 下载一个 自动安装 Docker 的脚本,并交给 bash 执行。


2.2.1.2 -fsSL 是啥意思?

这是四个常见的 curl 参数缩写:

参数 意义
-f 出错时不输出错误页面(fail silently)
-s 安静模式,不显示进度条(silent)
-S -s配合,在出错时才显示错误信息
-L 遇到重定向(302/301)时自动跟随(location)

所以,这段命令的意思就是:

“从 get.docker.com 安静地下载脚本,如果遇到重定向也能顺利跳转,然后交给 bash 执行。”


2.2.1.3 bash 又是干嘛的?

这是 Linux 默认的命令解释器,常见的 shell。

你可以简单理解为“命令行的大脑”,它负责:

  • 接收你的命令
  • 按顺序执行脚本里的命令
  • 报错 / 提示 / 输出结果

所以整个命令翻译成中文就是:

“请从 Docker 官网下载官方安装脚本,然后交给系统自动执行,给我装好 Docker。”


2.2.2 第二句拆解:

sudo curl -L "https://github.com/docker/compose/releases/download/
v2.36.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

这一大串其实就是:

  • 下载 对应你系统版本 的 docker-compose 二进制文件
  • 放到 /usr/local/bin/ 路径下(这是默认可以执行的路径)

$(uname -s) 是获取你当前系统的类型(比如 Linux)
$(uname -m) 是获取你当前的 CPU 架构(比如 x86_64)

它们组合起来后,自动匹配适合你服务器的版本,不用手动挑!


2.2.2.1 sudo 是啥意思?

sudo 是 “Super User DO” 的缩写。

📢 就是“以管理员身份执行命令”的意思。
有点像 Windows 的“以管理员身份运行”。

为什么要用 sudo

因为 /usr/local/bin/ 是系统级路径,普通用户没权限往里写文件,所以得提权。


2.2.2.2 chmod +x 又是干嘛的?

chmod 是 “change mode”,改权限的意思。
+x 是加上可执行权限。

也就是说:我们把下载下来的 docker-compose 文件设为“可以运行的程序”。

没有这一句的话,文件是死的,不能运行!


我建议你先把这些命令复制粘贴跑一遍,然后回来再细品上面的解释 😎


接下来我们将继续讲解国内 VPS 的安装方法,以及 Docker 日志和 IPv6 的可选优化。

第二节课(2/3):在大陆安装 Docker & Docker Compose

如果你用的是国内 VPS(比如阿里云、腾讯云广州、华为云、轻量服务器大陆节点等),直接用国外的安装脚本可能会很慢,甚至挂掉。

所以我们推荐使用国内镜像源安装!


2.1、执行命令(大陆 VPS )

已失效,替换方案前往 失效命令汇总

# Docker 安装(使用 DaoCloud 镜像源)
curl -sSL https://get.daocloud.io/docker | sh

# Docker Compose 安装(来自 DaoCloud)
curl -L https://get.daocloud.io/docker/compose/releases/download/
v2.23.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

# 添加可执行权限
chmod +x /usr/local/bin/docker-compose

# 设置 Docker 开机启动
systemctl enable docker

2.2 拆词解释(小白速通、老鸟可跳)

来,我们还是像之前一样“拆词讲解”,看看到底都做了什么:


2.2.1 第一句拆解

curl -sSL https://get.daocloud.io/docker | sh

这条和之前的非大陆版类似,只是换成了 DaoCloud 提供的大陆镜像,下载速度更快,成功率更高。

关键词 含义
curl 命令行下载工具
-sSL 静默下载 + 跟踪重定向
sh 是 shell 的另一种写法,和 bash 类似,也能执行脚本

你可以理解为:

请从 DaoCloud 拉取 Docker 安装脚本,然后在本机运行。”


2.2.2 第二句拆解

Docker Compose 安装(大陆源)

curl -L https://get.daocloud.io/docker/compose/releases/download/
v2.23.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

和非大陆那一条一模一样,就是把 GitHub 地址换成了内陆的 DaoCloud 镜像,速度大幅提升。

注意:v2.23.3 是截至写稿时比较新的版本(你也可以自己上 GitHub 查看最新版本)。

执行完这条命令后,记得给它加运行权限:

chmod +x /usr/local/bin/docker-compose

如果你是新手,并不确定自己是不是“大陆 VPS”,可以直接复制这组命令来执行
只有在这组命令无法访问时,才考虑用国外那组。


第二节课(2.5/3):补充:配置 Docker 日志 & IPv6(进阶优化,可跳过)

为什么要改日志配置?

Docker 默认会不停记录日志,久而久之可能导致磁盘被日志填爆……
所以我们加一段配置,让日志保持在一个“安全的限度”内。

image-Xvgv.png


2.1 执行命令:

cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
}
EOF

再执行:

sudo systemctl restart docker

2.2 拆句解释

配置项 作用
"log-driver": "json-file" 日志驱动,记录为 JSON 格式
"max-size": "20m" 每个日志文件最多 20MB
"max-file": "3" 最多保留 3 个轮转日志文件
"ipv6": true 启用 IPv6
"fixed-cidr-v6" 指定一个 IPv6 地址段
"experimental": true 开启 Docker 实验特性(比如后续某些 beta 功能)
"ip6tables": true 支持 IPv6 的防火墙规则

这样配置完之后:

  • 你的日志就不会无脑暴涨
  • 你的容器也支持 IPv6(以后玩点新花样也方便)


第二节课(3/3):验证 Docker 安装成功 & 基础命令扫盲

Docker 装好了,那怎么确定它真的“装成功了”?

别急,我们一步步来。


2.1、执行命令(1)

检查 Docker 安装是否成功

docker version

2.2、拆词解释(1)(小白速通、老鸟可跳)

我们先来看看这个命令在说啥:

单词 释义
docker 是我们刚安装的软件名,全称是Docker Engine,容器引擎
version 英文就是“版本”的意思(是不是很熟)

所以:docker version这句的意思是:

💬 “嘿 docker,告诉我你自己是什么版本的。”

如果你看到类似下面这样的输出:

Client: Docker Engine - Community
 Version:           24.0.7
...
Server: Docker Engine - Community
 Version:           24.0.7
...

🎉 恭喜你,Docker 装好了!


2.3、执行命令(2)

检查 Docker Compose 是否安装成功

docker-compose version

或者(如果你使用的是新版 v2):

docker compose version

注意看,docker-compose(带中划线)和 docker compose(空格)都有人用,新版推荐用空格版,以后也会逐步统一

2.4、拆词解释(2)(小白速通、老鸟可跳)

单词 释义
compose 动词“组成、编排”的意思
docker compose 就是“把多个 Docker 容器编排起来运行”的工具

也就是说,Docker 是单个容器的管理工具,Docker Compose 是“多个容器的指挥家”。

你可以把它理解为:

Docker 是乐手,Compose 是指挥。

输出长这样:

Docker Compose version v2.23.3

🆗,大功告成!


总结

步骤 内容
1️⃣ docker version查看 Docker 是否装好
2️⃣ docker compose version检查 Compose 是否 OK
3️⃣ docker run hello-world测试能不能拉镜像跑容器
4️⃣ 至此,准备工作完毕 ✅,接下来可以部署我们的小记事本 Memos 啦!

下一节课:正式启动我们的在线笔记 Memos!

我们将会:

📂 拉镜像
🛠 配置文件夹
🚀 一条命令启动 Memos!

0
广告 广告

评论区