如何在 Ubuntu 22.04 中安装 Docker 引擎和 Linux 版 Docker Desktop 桌面软件

以下是在 Ubuntu 22.04 中安装 Docker 引擎和 Linux 版 Docker Desktop 桌面软件的完整步骤:

一、安装 Docker 引擎

1. 更新系统并安装依赖
bash 复制代码
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
2. 添加 Docker 官方 GPG 密钥
python 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
3. 配置 Docker APT 仓库
python 复制代码
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装 Docker 引擎及工具
python 复制代码
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
5. 验证 Docker 安装
python 复制代码
sudo systemctl status docker  # 检查服务状态

在ubuntu系统中如何将docker安装在指定目录

在 Ubuntu 系统中,Docker 默认安装路径(程序文件)通常在/usr/bin等系统目录,而核心数据(镜像、容器、卷等)默认存储在/var/lib/docker。若需将数据目录指定到其他位置(这是更常见的需求,因为程序文件通常无需修改路径),可按以下步骤操作:

方法:修改 Docker 数据存储目录(推荐)

1. 停止 Docker 服务

首先确保 Docker 服务处于停止状态:

python 复制代码
sudo systemctl stop docker
sudo systemctl stop docker.socket  # 如果上一步有提示就需要停止socket
2. 创建目标目录

在指定位置创建 Docker 数据目录(例如/home/用户名/soft/dockerdata),并确保权限正确:

python 复制代码
sudo mkdir -p /home/用户名/soft/dockerdata # 替换为你的目标路径
sudo chmod 711 /home/用户名/soft/dockerdata # Docker需要该权限
3. 迁移现有数据(如果已有镜像 / 容器)

若之前已有 Docker 数据,需将默认目录的内容迁移到新目录:

python 复制代码
sudo rsync -avx /var/lib/docker/ /home/用户名/soft/dockerdata
4. 配置 Docker 数据目录

通过daemon.json配置文件指定新的数据目录(推荐这种方式,避免修改 systemd 服务文件):

python 复制代码
sudo mkdir -p /etc/docker  # 确保配置目录存在
sudo tee /etc/docker/daemon.json <<EOF
{
  "data-root": "/data/docker"
}
EOF
5. 重启 Docker 服务并验证
python 复制代码
# 重新加载配置并启动Docker
sudo systemctl daemon-reload
sudo systemctl start docker

# 验证数据目录是否生效
sudo docker info | grep "Docker Root Dir"

若输出显示为你指定的/data/docker,则配置成功。

补充说明:

  • 程序文件路径 :Docker 的可执行文件(如dockerdockerd)默认安装在/usr/bin,一般无需修改(也不建议修改,可能导致依赖问题)。
  • 注意事项
    • 目标目录所在的分区需有足够空间(存储镜像、容器等)。
    • 若使用systemd管理 Docker,修改daemon.json是最安全的方式,避免直接编辑/lib/systemd/system/docker.service(可能被系统更新覆盖)。
    • 若无需保留原有数据,可跳过步骤 3(迁移数据),但新目录会是空的,原有镜像 / 容器需重新拉取或创建。

通过以上步骤,即可将 Docker 的核心数据存储到指定目录,解决默认路径空间不足的问题。

测试容器运行:

首先配置国内 Docker 镜像加速器,步骤如下:

1. 配置国内镜像加速器

推荐使用阿里云、网易云等国内镜像源,以阿里云为例:

python 复制代码
# 创建/修改Docker配置文件
sudo mkdir -p /etc/docker

进入/etc/docker目录,使用下面命令填加国内镜像源:

python 复制代码
sudo nano daemon.json
python 复制代码
  "registry-mirrors": [
    "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://your_preferred_mirror",
    "https://dockerhub.icu",
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc"
  ]

注意前面文件以前的内容要用逗号","隔离,否则不符合JSON格式会报错,最后使用ctrl+o,回车保存,再使用ctrl+x退出。

使用以下命令查看:

python 复制代码
sudo cat daemon.json
  1. 重启 Docker 服务
python 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 运行 hello-world

python 复制代码
sudo docker run hello-world

此时 Docker 会通过国内镜像源拉取镜像,应该能成功运行并显示 "Hello from Docker!" 的验证信息。

二、安装 Docker Desktop 桌面版

1. 下载最新 Docker Desktop DEB 包

访问 Docker 官网下载页面,选择 Linux (DEB) 版本,复制下载链接后执行:

python 复制代码
wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.26.1-amd64.deb  # 替换为实际下载链接

首先进入 .deb 文件所在目录(默认在 ~//home/szsy/),调整文件权限:

bash 复制代码
# 进入文件所在目录(若文件在其他路径,替换为实际路径,如 ~/Downloads)
cd /home/szsy

# 查看当前文件权限(确认所有者是 szsy,其他用户无读取权限)
ls -l docker-desktop-amd64.deb

# 给所有用户添加"读取权限"(让 _apt 能正常读取文件,消除警告)
sudo chmod o+r docker-desktop-amd64.deb
  • 权限调整后,再次查看权限会显示类似 rw-r--r--(最后一个 r 表示其他用户有读取权限),_apt 即可正常访问。
2. 安装依赖(可选)

若安装时提示缺少图形依赖,需补充安装:

bash 复制代码
sudo apt install libgl1-mesa-glx -y
3. 安装 Docker Desktop
bash 复制代码
sudo apt install ./docker-desktop-*.deb
4. 启动 Docker Desktop
python 复制代码
# 启动服务(首次启动需等待 3-5 分钟初始化)
systemctl --user start docker-desktop

# 启用开机自启
systemctl --user enable docker-desktop
5. 首次运行配置
  • 在应用程序菜单中搜索 Docker Desktop 并打开。
  • 接受 Docker 订阅服务协议,等待初始化完成。
  • 登录 Docker Hub 账户(可选)。

三、配置用户权限

1. 将当前用户加入 docker 组
python 复制代码
sudo usermod -aG docker $USER
newgrp docker  # 立即生效权限
2. 验证权限
python 复制代码
docker ps  # 无需 sudo 即可执行

四、常见问题处理

  1. 启动失败

    • 检查日志:journalctl --user -u docker-desktop
    • 确保虚拟化已启用:lsmod | grep kvm(若未加载,执行 sudo modprobe kvm_intelkvm_amd
  2. 图形界面异常

    • 安装图形依赖:sudo apt install libgl1-mesa-glx -y
  3. 权限问题

    • 重新加入 docker 组:sudo usermod -aG docker $USER
    • 重启 Docker 服务:sudo systemctl restart docker

五、注意事项

  1. 资源限制

    Docker Desktop 默认分配 2GB 内存和 2 核 CPU,可在 Settings > Resources 中调整。

  2. 版本兼容性

    • 确保 Docker Desktop 版本与 Docker 引擎兼容(通常自动处理)。
    • 若需 GPU 支持,需额外配置 NVIDIA 容器工具包(参考 NVIDIA 文档)。
  3. 卸载方法

    • 卸载 Docker Desktop:sudo apt purge docker-desktop
    • 卸载 Docker 引擎:sudo apt purge docker-ce docker-ce-cli containerd.io

通过以上步骤,即可在 Ubuntu 22.04 上完整安装 Docker 引擎和图形化管理工具 Docker Desktop,实现容器的高效开发与管理。

Docker 引擎(系统级服务)的开机自启

Docker 引擎是容器运行的核心服务,需通过系统级服务管理工具 systemctl 配置:

1. 启用 Docker 引擎自动启动
bash 复制代码
sudo systemctl enable docker
  • 原理 :该命令会在 /etc/systemd/system/multi-user.target.wants/ 目录下创建 docker.service 的符号链接,确保系统启动时自动加载服务。

  • 验证

    python 复制代码
    sudo systemctl is-enabled docker  # 应显示 enabled
2. 启动 Docker 引擎(立即生效)
python 复制代码
sudo systemctl start docker
3. 检查服务状态
bash 复制代码
sudo systemctl status docker
  • 若输出包含 Active: active (running),表示服务已正常启动。
相关推荐
牛奶5 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶5 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
蝎子莱莱爱打怪11 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
KEEN的创享空间11 小时前
AI编程从0到1之10X提效(Vibe Coding 氛围式编码 )09篇
openai·ai编程
AlienZHOU12 小时前
为 AI Agent 编写高质量 Skill:Claude 官方指南
agent·ai编程·claude
倔强的石头_12 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
恋猫de小郭13 小时前
移动端开发稳了?AI 目前还无法取代客户端开发,小红书的论文告诉你数据
前端·flutter·ai编程
KaneLogger14 小时前
【翻译】打造 Agent Skills 的最佳实践
agent·ai编程·claude
王小酱14 小时前
Everything Claude Code 文档
openai·ai编程·aiops
雮尘15 小时前
如何在非 Claude IDE (TARE、 Cursor、Antigravity 等)下使用 Agent Skills
前端·agent·ai编程