ubuntu docker 安装(长文解析)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;演示链接: http://116.62.199.48:7070 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 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 run
、docker ps
等命令,开发者可以像操作本地文件一样管理容器。
3. 镜像与容器
- 镜像(Image):只读模板,包含应用程序及其运行环境
- 容器(Container):镜像的运行实例,具有读写层和独立运行时环境
比喻:镜像如同集装箱的空箱模板,容器则是装载货物并开始运输的具体集装箱。
实战案例:构建并运行第一个 Docker 容器
案例场景:部署 Nginx Web 服务器
- 拉取官方镜像
sudo docker pull nginx:latest
从 Docker Hub 拉取最新版 Nginx 镜像,相当于从仓库领取标准集装箱。
- 运行容器
sudo docker run -d -p 80:80 --name my-nginx nginx:latest
参数解释:
-d
:后台运行-p 80:80
:将容器的 80 端口映射到主机 80 端口--name
:指定容器名称nginx:latest
:使用的镜像名称
- 验证访问
打开浏览器访问
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 将成为你得心应手的工具。