ubuntu docker 安装(长文解析)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观

在现代软件开发领域,容器化技术已经成为提升开发效率和部署稳定性的关键工具。Docker 作为容器化领域的标杆产品,能够将应用程序及其依赖项封装在独立的容器中,实现跨环境的一致性运行。而 Ubuntu 系统凭借其开源性、稳定性和广泛社区支持,成为许多开发者和团队的首选操作系统。本文将详细讲解如何在 Ubuntu 系统上安装 Docker,并通过实际案例帮助读者快速掌握其核心功能。无论是编程新手还是有一定经验的开发者,都能通过本文搭建起属于自己的 Docker 环境。


安装前的准备工作:为 Docker 守护进程铺路

1. 系统环境检查与更新

在开始安装前,确保你的 Ubuntu 系统满足最低要求。Docker 支持 Ubuntu 16.04 及以上版本,建议使用 LTS(长期支持)版本以获得更好的稳定性。首先通过以下命令更新系统包列表:

sudo apt-get update
sudo apt-get upgrade

这一步如同给汽车更换机油,确保系统底层环境处于最佳状态。

2. 安装依赖包

Docker 需要一些基础工具和库的支持,通过以下命令安装:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

其中:

  • apt-transport-https:允许通过 HTTPS 协议下载软件包
  • ca-certificates:提供 SSL/TLS 证书验证功能
  • curl:用于后续下载 Docker 官方 GPG 密钥
  • software-properties-common:管理软件源的工具

3. 添加 Docker 官方 GPG 密钥

为确保软件来源可信,需添加 Docker 的官方 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

GPG 密钥如同数字身份证,验证软件包的完整性和来源可靠性。


安装 Docker 的核心步骤:从仓库到守护进程启动

1. 配置 Docker 官方仓库

将 Docker 的 Ubuntu 软件源添加到系统中:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

这里通过 add-apt-repository 命令将 Docker 官方仓库地址写入系统配置,类似将快递公司的分拣中心接入本地物流网络。

2. 安装 Docker Engine

执行以下命令安装 Docker 社区版(Community Edition):

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

这一步将安装三个关键组件:

  • docker-ce:Docker 引擎本身
  • docker-ce-cli:命令行工具
  • containerd.io:容器运行时的核心组件

3. 验证 Docker 安装

通过运行官方测试镜像验证安装是否成功:

sudo docker run hello-world

如果看到以下输出,说明 Docker 已正确安装:

Hello from Docker!
This message shows that your installation appears to be working correctly.

深入理解 Docker 架构:容器化技术的三大支柱

1. Docker 守护进程(Docker Daemon)

守护进程是 Docker 的核心服务,负责管理容器、镜像和网络。它如同集装箱港口的调度中心,持续监听来自客户端的指令,并执行创建、启动、停止容器等操作。

2. Docker 客户端(Docker Client)

docker 命令行工具是用户与 Docker 守护进程交互的接口。通过 docker rundocker ps 等命令,开发者可以像操作本地文件一样管理容器。

3. 镜像与容器

  • 镜像(Image):只读模板,包含应用程序及其运行环境
  • 容器(Container):镜像的运行实例,具有读写层和独立运行时环境

比喻:镜像如同集装箱的空箱模板,容器则是装载货物并开始运输的具体集装箱。


实战案例:构建并运行第一个 Docker 容器

案例场景:部署 Nginx Web 服务器

  1. 拉取官方镜像
sudo docker pull nginx:latest

从 Docker Hub 拉取最新版 Nginx 镜像,相当于从仓库领取标准集装箱。

  1. 运行容器
sudo docker run -d -p 80:80 --name my-nginx nginx:latest

参数解释:

  • -d:后台运行
  • -p 80:80:将容器的 80 端口映射到主机 80 端口
  • --name:指定容器名称
  • nginx:latest:使用的镜像名称
  1. 验证访问 打开浏览器访问 http://localhost,将看到 Nginx 默认欢迎页面。

常见问题与解决方案:避免踩坑指南

1. 权限问题

若遇到 Permission denied 错误,需将用户添加到 Docker 组:

sudo usermod -aG docker $USER
newgrp docker

重启终端后无需再使用 sudo 运行 Docker 命令。

2. 端口冲突

当运行容器时提示端口已被占用,可通过以下命令查找占用进程:

sudo netstat -tulnp | grep ':80'

或修改 -p 参数指定其他端口映射,例如 -p 8080:80

3. 镜像下载速度慢

国内用户可通过阿里云镜像加速服务提升速度:

sudo mkdir -p /etc/docker
echo '{"registry-mirrors": ["https://<你的加速器地址>.mirror.aliyuncs.com"]}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

进阶技巧:容器的生命周期管理

1. 列出所有容器

docker ps -a

查看运行中和已停止的容器列表,类似港口的集装箱状态监控系统。

2. 停止并删除容器

docker stop my-nginx
docker rm my-nginx

3. 构建自定义镜像

创建 Dockerfile

FROM nginx:latest
COPY ./html /usr/share/nginx/html

构建镜像:

docker build -t my-nginx:v1 .

结论:Ubuntu Docker 安装的价值与展望

通过本文的步骤,读者已掌握了在 Ubuntu 系统上安装和使用 Docker 的完整流程。Docker 不仅简化了开发环境配置,还为持续集成/持续部署(CI/CD)提供了基础架构支持。对于初学者,建议从简单项目开始实践,逐步探索 Docker Compose、Dockerfile 编写等进阶内容;中级开发者则可深入研究网络配置、存储管理等高级功能。

随着云原生技术的普及,容器化技能将成为开发者的核心竞争力。掌握 Ubuntu Docker 安装与使用,不仅是技术能力的提升,更是迈向现代化开发流程的重要一步。希望本文能成为你容器化旅程的坚实起点,未来在构建分布式系统或微服务架构时,Docker 将成为你得心应手的工具。

最新发布