linux 安装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 已经成为开发和运维领域不可或缺的工具。它简化了软件的打包、分发和运行流程,让开发者能够专注于代码本身,而非环境配置的琐碎细节。对于编程初学者和中级开发者而言,掌握 Docker 的安装与基础操作是迈向现代化开发实践的重要一步。本文将从零开始,详细讲解如何在 Linux 系统上安装 Docker,并通过实际案例帮助读者快速上手。
一、Docker 的核心概念与价值
1.1 什么是 Docker?
Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。这些容器可以在任何支持 Linux 的环境中运行,确保“一次构建,到处运行”。
形象比喻:
可以将 Docker 比作“集装箱”技术。传统软件开发如同将货物随意堆放在不同尺寸的木箱中,运输时需要重新调整空间。而 Docker 容器就像标准集装箱,无论货物类型如何,都能被统一装载、运输和部署。
1.2 Docker 的核心组件
- 镜像(Image):容器的模板,包含应用程序及其依赖。
- 容器(Container):由镜像运行生成的实例,可启动、停止或删除。
- 仓库(Registry):存储和分发镜像的中心,例如 Docker Hub。
1.3 安装 Docker 的必要性
- 环境一致性:避免“在我机器上能跑”的尴尬问题。
- 资源效率:容器共享宿主机内核,比虚拟机更轻量。
- 快速部署:通过预构建的镜像快速启动服务。
二、安装前的系统准备
2.1 支持的 Linux 发行版
Docker 官方支持主流 Linux 发行版,包括:
- Ubuntu LTS
- CentOS/RHEL 7+
- Debian
- Fedora
2.2 系统要求
- 64 位架构(x86_64 或 AMD64)
- 内核版本 3.10+(多数现代 Linux 系统已满足)
2.3 更新系统包
安装前,建议更新系统包以确保兼容性:
sudo apt-get update && sudo apt-get upgrade -y # Ubuntu/Debian
sudo yum update -y # CentOS/RHEL
三、通过官方仓库安装 Docker
3.1 添加 Docker 官方仓库
Docker 的安装包托管在官方仓库中,需先将其添加到系统源列表:
Ubuntu/Debian 系统:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
CentOS/RHEL 系统:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.2 安装 Docker Engine
安装 Docker 的核心组件:
Ubuntu/Debian 系统:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
CentOS/RHEL 系统:
sudo yum install -y docker-ce docker-ce-cli containerd.io
3.3 启动 Docker 服务
安装完成后,启动 Docker 服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
四、验证 Docker 安装
4.1 运行第一个容器
执行以下命令运行官方的 hello-world
镜像:
sudo docker run hello-world
如果输出包含“Hello from Docker!”,则说明安装成功。
4.2 查看 Docker 版本
docker --version
docker version
前者显示客户端版本,后者显示客户端和服务器的详细信息。
4.3 常见问题排查
- 权限问题:若提示“permission denied”,可将当前用户添加到
docker
组:sudo usermod -aG docker $USER # 重启终端或执行 newgrp docker 后再测试
- 镜像拉取失败:国内用户可切换阿里云镜像加速器(见后续进阶章节)。
五、Docker 的基础操作实践
5.1 拉取镜像
从 Docker Hub 拉取 Nginx 镜像:
docker pull nginx
5.2 运行容器
以端口映射的方式启动 Nginx 容器:
docker run -d -p 80:80 --name my-nginx nginx
参数说明:
-d
:后台运行-p 80:80
:将容器的 80 端口映射到主机的 80 端口--name
:指定容器名称
5.3 查看运行中的容器
docker ps
输出示例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123... nginx "nginx -g 'daemon of…" 10 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp my-nginx
5.4 停止和删除容器
docker stop my-nginx # 停止容器
docker rm my-nginx # 删除容器
六、进阶配置与优化
6.1 配置 Docker 镜像加速
国内用户可通过阿里云镜像加速器提升下载速度:
- 注册阿里云账号并获取加速器地址:
https://<你的镜像加速器>.mirror.aliyuncs.com
- 编辑
/etc/docker/daemon.json
文件,添加:{ "registry-mirrors": ["https://<你的镜像加速器>.mirror.aliyuncs.com"] }
- 重启 Docker 服务:
sudo systemctl restart docker
6.2 管理 Docker 镜像
- 列出所有镜像:
docker images
- 删除镜像:
docker rmi <镜像ID>
6.3 使用 Docker Compose
Docker Compose 是管理多容器应用的工具。例如,创建 docker-compose.yml
文件:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
redis:
image: redis
运行命令:
docker-compose up -d
七、常见场景与最佳实践
7.1 开发环境隔离
通过容器隔离不同版本的开发工具,例如:
docker run -it --name dev-node node:18 bash
7.2 生产环境部署
结合 Dockerfile 定制镜像,例如:
FROM nginx:latest
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
构建并运行:
docker build -t my-nginx .
docker run -d -p 80:80 my-nginx
八、结论
通过本文,读者已掌握了在 Linux 系统上安装 Docker 的完整流程,并通过实际案例了解了其核心操作。Docker 的容器化技术不仅简化了开发与部署,还为团队协作和持续集成提供了强大支持。建议读者从简单项目入手,逐步探索 Docker 的高级功能,如网络配置、卷管理及与 Kubernetes 的集成。掌握 Docker 将成为你迈向 DevOps 和云原生领域的重要基石。
附录:Docker 常用命令速查表
(与前文空一行)
| 命令 | 描述 |
|-------------------------------|-------------------------------|
| docker pull <镜像名>
| 拉取镜像 |
| docker run <参数> <镜像>
| 运行容器 |
| docker ps
| 查看运行中的容器 |
| docker stop <容器ID>
| 停止容器 |
| docker images
| 列出本地镜像 |
| docker rmi <镜像ID>
| 删除镜像 |
| docker exec -it <容器ID> bash
| 进入容器终端 |