ubuntu 安装部署docker教程

第一步:开启 WSL2 的 systemd 支持

原生 Docker 需要 systemd 来管理服务,而早期的 WSL2 默认不开启。

  1. 在 Ubuntu 终端执行:
bash 复制代码
sudo nano /etc/wsl.conf
  1. 将以下内容粘贴进去:
text 复制代码
[boot]
systemd=true
  1. Ctrl+O 保存,Ctrl+X 退出。
  2. 关键: 回到 Windows 命令行(CMD 或 PowerShell),执行 wsl --shutdown 重启 WSL。
  3. 重新进入 Ubuntu,输入 systemctl list-unit-files --type=service。如果没报错,说明 systemd 已经跑起来了。

第二步:安装 Docker Engine

不要使用 apt install docker.io(版本较旧),我们要用 Docker 官方源:

  1. 卸载旧版:
bash 复制代码
# 存在则卸载,不存在就不需要执行
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
  1. 设置官方仓库:
bash 复制代码
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 正式安装:
bash 复制代码
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

第三步:免 sudo 操作(开发者必备)

为了不用每次打命令都带 sudo,把你现在的用户加入 docker 组:

控制 Docker 服务(start/stop/enable)→ 始终需要 sudo

使用 Docker 命令(ps/run/compose)→ 加入 docker 组后不需要 sudo

bash 复制代码
sudo usermod -aG docker $USER

注意: 执行完这步后,你需要关闭当前的 Ubuntu 终端窗口并重新打开,权限才会生效。


第四步:启动并验证

bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker  # 设置开机自启
docker ps                     # 验证:如果不报错,说明安装成功

第五步:正式部署 Dify

现在你的 Ubuntu 已经是一个完整的 Docker 服务器了,步骤和之前类似:

  1. 拉取代码:
bash 复制代码
cd ~
git clone https://github.com/langgenius/dify.git
cd dify/docker
  1. 配置环境:
bash 复制代码
cp .env.example .env
  1. 一键启动:
bash 复制代码
docker compose up -d

为什么这种部署方式更"Linux"?

  • 服务化管理: 你可以使用 systemctl status docker 来查看引擎状态,这和在真实生产服务器(CentOS/Ubuntu)上的操作完全一致。
  • 性能损耗最小: 减少了 Docker Desktop 在 Windows 和 WSL 之间的那层转发代理。
  • 文件权限纯粹: 所有的镜像和容器数据都存储在 WSL 的虚拟磁盘(ext4)里,不会出现 Windows 和 Linux 文件系统权限冲突的问题。

踩坑提醒:

在拉取镜像(docker compose up)时,如果速度非常慢甚至报错,是因为国内访问 Docker Hub 受到限制。

需要我教你如何配置 Docker 的镜像加速器(如使用阿里云或各种加速地址)吗? 这通常是 Linux 部署 Docker 后的"第一道工序"。

相关推荐
kong@react23 分钟前
Rocky Linux 10.2 全面解析:企业级 CentOS 替代方案及保姆级docker安装
java·linux·运维·docker
凡人叶枫1 小时前
Effective C++ 条款07:为多态基类声明 virtual 析构函数
linux·c语言·开发语言·c++
凡人叶枫1 小时前
Effective C++ 条款10:令 operator= 返回一个 reference to *this
java·linux·服务器·开发语言·c++·effective c++
某林2121 小时前
Isaac Sim 5.1.0 无头服务器部署与 RTX 显存段错误排障全记录
运维·服务器·docker·容器·isaac
|_⊙1 小时前
Linux 中断
linux
m0_738120722 小时前
Docker 环境下 Vulfocus 靶场搭建全流程(附镜像源问题解决方案)
运维·服务器·网络·安全·docker·容器
simeple2 小时前
记一次 Docker Compose 项目迁移:从 Windows Docker Desktop 迁移到 CentOS 服务器
docker
Championship.23.242 小时前
Linux 3.0 音频机制深度解析:ALSA基础架构与传统音频驱动模型
linux·运维·音视频·alsa
哆啦A梦——2 小时前
Ubuntu 虚拟机 Docker 与 MySQL 8.0.42 部署指南
mysql·ubuntu·docker
Tian_Hang2 小时前
Linux基础知识(四)
linux·ide·驱动开发·计算机视觉·硬件工程·动画