Debian Docker 安装(建议收藏)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
前言
在云计算和容器化技术蓬勃发展的今天,Docker 已成为开发者构建、部署和运行应用程序的首选工具。而 Debian 作为稳定且轻量级的 Linux 发行版,因其高度的可定制性和活跃的社区支持,成为许多开发者搭建 Docker 环境的首选操作系统。本文将从 Debian Docker 安装 入手,逐步讲解如何在 Debian 系统上部署 Docker 环境,并通过实际案例演示其核心功能。无论是编程新手还是有一定经验的开发者,都能通过本文掌握 Docker 的基础操作,并为后续的容器化实践打下坚实基础。
一、安装前的准备工作
1.1 硬件与系统要求
安装 Docker 对硬件要求较低,但建议至少配备 2GB 内存和 10GB 空闲存储空间。Debian 支持的版本包括 Debian 10 (Buster)、Debian 11 (Bullseye) 和 Debian 12 (Bookworm),本文将以 Debian 11 为例进行演示。
1.2 网络与依赖项检查
确保 Debian 系统已连接互联网,并更新系统软件包列表:
sudo apt update && sudo apt upgrade -y
此外,Docker 安装依赖于以下组件:
apt-transport-https
:支持通过 HTTPS 获取软件包。ca-certificates
:提供 SSL/TLS 证书验证。curl
:用于下载 Docker 安装脚本。
可通过以下命令安装这些依赖项:
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
二、Docker 安装步骤详解
2.1 添加 Docker 官方仓库密钥
为了验证软件包的完整性,需从 Docker 官方仓库导入 GPG 密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
此命令通过 curl
下载密钥文件,并使用 gpg
工具将其转换为 Debian 系统可识别的格式。
2.2 配置 Docker 官方仓库
接下来,将 Docker 官方仓库添加到系统的软件源列表中:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
该命令通过 echo
将仓库信息写入配置文件,确保后续安装时系统能从 Docker 官方源获取软件包。
2.3 安装 Docker Engine
完成仓库配置后,即可安装 Docker 引擎(Docker Engine):
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
docker-ce
:Docker 社区版核心组件。docker-ce-cli
:命令行工具,用于与 Docker 守护进程交互。containerd.io
:容器运行时,负责管理镜像和容器的底层操作。
安装完成后,可通过以下命令验证 Docker 是否成功运行:
sudo systemctl status docker
若输出显示 active (running)
,则说明 Docker 已启动。
三、配置 Docker 环境
3.1 允许非 root 用户使用 Docker
默认情况下,只有 root 用户或 docker
组的成员才能执行 Docker 命令。为避免频繁使用 sudo
,可将当前用户添加到 docker
组:
sudo usermod -aG docker $USER
添加完成后,需重新登录或重启系统使权限生效。
3.2 配置 Docker 镜像加速
由于 Docker Hub 的访问速度可能较慢,推荐使用国内镜像源(如阿里云)加速下载。编辑 /etc/docker/daemon.json
文件,添加以下内容:
{
"registry-mirrors": ["https://<你的镜像加速器地址>.mirror.aliyuncs.com"]
}
保存后重启 Docker 服务:
sudo systemctl restart docker
四、Docker 基础操作实战
4.1 拉取并运行第一个容器
以运行 Nginx 容器为例,执行以下命令:
docker run -d -p 80:80 --name my-nginx nginx
-d
:后台运行容器。-p 80:80
:将容器的 80 端口映射到主机的 80 端口。--name my-nginx
:指定容器名称。
访问主机的 IP 地址(可通过 curl http://localhost
检查),将看到 Nginx 的默认欢迎页面。
4.2 构建自定义镜像
4.2.1 编写 Dockerfile
在项目目录中创建 Dockerfile
,内容如下:
FROM python:3.9-slim
WORKDIR /app
COPY . /app
RUN pip install flask
EXPOSE 5000
CMD ["python", "app.py"]
4.2.2 构建镜像
在 Dockerfile 所在目录执行:
docker build -t my-flask-app .
4.2.3 运行容器
docker run -d -p 5000:5000 --name my-flask-app my-flask-app
五、高级配置与常见问题
5.1 网络与数据卷管理
5.1.1 自定义网络
docker network create my-network
docker run --network my-network -d --name db mysql:latest
5.1.2 数据持久化
docker volume create my-data
docker run -v my-data:/app/data ...
5.2 常见问题解决
5.2.1 权限问题
若遇到 permission denied
错误,可检查用户是否在 docker
组中,并重启 Docker 服务:
sudo systemctl restart docker
5.2.2 端口冲突
若端口已被占用,可通过 -p
参数指定其他端口,例如:
docker run -p 8080:80 nginx
六、总结与展望
通过本文的步骤,开发者已能熟练掌握 Debian Docker 安装 的全流程,并通过实际案例理解容器化技术的核心概念。Docker 的灵活性和高效性使其成为 DevOps 流程中的重要工具,无论是微服务架构、CI/CD 管道还是跨平台部署,都能显著提升开发效率。
未来,建议读者进一步探索 Docker Compose 的多容器编排、Kubernetes 的集群管理,以及镜像优化技巧。实践是掌握技术的最佳途径,不妨尝试将现有项目容器化,或参与开源社区的 Docker 化实践,逐步成长为容器技术领域的专家。
希望本文能为你的 Docker 学习之路提供清晰的指引!如果有任何疑问或建议,欢迎在评论区交流。