当前位置: 首页 > news >正文

Ubuntu 环境下搭建 Docker 及常见问题解决方案

一、Docker 简介

        Docker 是一个开源的应用容器引擎,开发者可以打包自己的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,能够有效解决 “环境不一致” 的问题,极大提升应用部署和运维效率。

二、Ubuntu 环境下 Docker 安装步骤

1. 更新系统软件包索引

        在安装 Docker 之前,首先要确保系统的软件包索引是最新的。打开终端,执行以下命令:

sudo apt update

        这个命令会从配置的软件源中下载最新的软件包列表信息,以便后续安装操作能够获取到最新版本的软件包。

2. 安装必要的系统工具

        安装 apt-transport-https、ca-certificates、curl、gnupg 和 lsb-release 等工具,这些工具将用于添加 Docker 的软件源和验证软件包的签名,确保安装过程的安全性和可靠性。执行命令如下:

 

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

3. 添加 Docker 官方 GPG 密钥

        为了确保从 Docker 官方软件源下载的软件包是经过官方认证且未被篡改的,需要添加 Docker 官方的 GPG 密钥。运行以下命令:

 

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

        该命令会从 Docker 官方网站下载 GPG 密钥,并将其保存到系统的密钥环中。

4. 添加 Docker 软件源

        将 Docker 的软件源添加到系统中,以便 apt 工具能够从该源下载 Docker 相关的软件包。根据你的 Ubuntu 版本,执行相应的命令:

 

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/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

        上述命令会根据系统的版本信息,将合适的 Docker 软件源添加到系统的软件源列表文件中。

5. 再次更新软件包索引

        添加完 Docker 软件源后,需要再次更新系统的软件包索引,让 apt 工具识别新添加的软件源中的软件包。执行命令:

 

sudo apt update

6. 安装 Docker Engine

        最后,使用 apt 工具安装 Docker Engine,这是 Docker 的核心组件,用于运行和管理容器。执行命令:

 

sudo apt install docker-ce docker-ce-cli containerd.io

        安装过程中,系统会提示确认安装,输入 y 并回车,等待安装完成即可。

7. 验证安装

        安装完成后,可以通过运行以下命令来验证 Docker 是否安装成功:

 

sudo docker run hello-world

        如果看到类似 “Hello from Docker!” 的输出信息,说明 Docker 已经成功安装并可以正常运行。

三、Docker 常见问题及解决方案

1. 权限问题:非 root 用户无法执行 docker 命令

        当尝试以非 root 用户身份执行 docker 命令时,可能会遇到权限不足的错误提示,如 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create”: dial unix /var/run/docker.sock: connect: permission denied”。

        解决方案:将当前用户添加到 docker 用户组中,执行命令:

 

sudo usermod -aG docker $USER

        添加完成后,需要重新登录系统或者执行 newgrp docker 命令使设置生效,之后就可以以非 root 用户身份执行 docker 命令了。

2. Docker 服务无法启动

        在启动 Docker 服务时,可能会遇到服务无法正常启动的情况,执行 sudo systemctl start docker 命令后没有反应,或者提示错误信息。

解决方案:

  • 检查系统日志,查看具体的错误原因。执行 sudo journalctl -u docker 命令,根据日志中的错误提示进行排查。
  • 可能是 Docker 相关的配置文件被修改导致服务无法启动,可以尝试恢复默认配置,或者重新安装 Docker。
  • 确保系统中没有其他进程占用 Docker 所需的端口或资源,例如 3376 端口等。

3. 镜像下载缓慢或失败

        在使用 docker pull 命令下载镜像时,可能会遇到下载速度非常缓慢,甚至下载失败的问题。

解决方案:

  • 配置国内镜像加速地址,如阿里云镜像加速、网易云镜像加速等。以阿里云为例,登录阿里云容器镜像服务控制台,获取专属的镜像加速地址,然后修改 Docker 的配置文件 /etc/docker/daemon.json ,添加如下内容:

{

"registry-mirrors": ["你的阿里云镜像加速地址"]

}

修改完成后,执行 sudo systemctl restart docker 命令重启 Docker 服务,即可使用镜像加速地址下载镜像。

  • 检查网络连接是否正常,尝试更换网络环境,如从 Wi-Fi 切换到有线网络等。

4. 容器无法正常运行或启动后自动退出

创建并启动容器后,容器可能无法按照预期正常运行,或者启动后立即自动退出。

解决方案:

  • 使用 docker logs 命令查看容器的日志信息,了解容器启动过程中发生的错误或异常。例如,执行 docker logs 容器ID 命令,根据日志提示进行问题排查和修复。
  • 检查容器的启动命令和参数是否正确,确保容器所需的依赖和配置都已正确设置。
  • 确认容器内的应用程序是否存在问题,可以进入容器内部进行调试,执行 docker exec -it 容器ID /bin/bash 命令进入容器的命令行界面,检查应用程序的运行情况。

        通过以上步骤,你应该能够在 Ubuntu 环境下成功搭建 Docker,并解决一些常见的问题。如果在搭建和使用过程中遇到其他特殊问题,欢迎随时向我咨询。

相关文章:

  • 大数据会被AI取代?不!大数据才是AI的“智慧燃料”引擎
  • mcp学习笔记
  • JSP链接MySQL8.0(Eclipse+Tomcat9.0+MySQL8.0)
  • 西门子 Teamcenter13 Eclipse RCP 开发 1.2 工具栏 开关按钮
  • 在线教育本地化分发:代理IP实现区域访问控制与内容适配
  • MySQL表的约束(上)
  • 嵌入式学习笔记 - STM32定时器的输入通道与时钟源
  • Vue+Vite学习笔记
  • C语言查漏补缺
  • 2025年渗透测试面试题总结-安恒[实习]安全工程师(题目+回答)
  • 中级网络工程师知识点4
  • 灵光一现的问题和常见错误2
  • 芯片生态链深度解析(二):基础设备篇——人类精密制造的“巅峰对决”
  • 劳特巴赫trace32负载率测试
  • [YOLO模型](4)YOLO V3的介绍
  • 新的节能技术和一体化解决方案,推动工厂智能升级和产业转型
  • 开源RTOS(实时操作系统):nuttx 编译
  • MyBatis 核心组件源码分析
  • 车载诊断架构 --- 核心网关流控制机制需求
  • 一个指令,让任意 AI 快速生成思维导图
  • 首映|《星际宝贝史迪奇》真人电影,不变的“欧哈纳”
  • 法律顾问被控配合他人诈骗酒店资产一审判8年,二审辩称无罪
  • 自强!助残!全国200个集体和260名个人受到表彰
  • 上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 农行回应“病重老人被要求亲自取钱在银行去世”:全力配合公安机关调查
  • 工商银行杭州金融研修院原院长蒋伟被“双开”