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

Docker完整教程 - 从入门到SpringBoot实战

目录

1. Docker基础概念

2. Docker安装

3. Docker核心概念详解

4. Docker常用命令大全

5. Dockerfile详解

6. SpringBoot项目Docker化实战

7. 实践案例

8. 常见问题与解决方案

总结


1. Docker基础概念

什么是Docker?

Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。

简单理解:想象Docker就像一个超级轻便的"虚拟机",但比虚拟机更快、更省资源。

Docker的优势

  • 轻量级:容器共享主机内核,比虚拟机占用更少资源
  • 可移植性:一次构建,到处运行
  • 快速部署:秒级启动,快速扩缩容
  • 环境一致性:开发、测试、生产环境完全一致

Docker vs 虚拟机

特性Docker容器虚拟机
启动速度秒级分钟级
资源占用
性能接近原生有损耗
隔离性进程级操作系统级

2. Docker安装

Windows安装

  1. 下载Docker Desktop for Windows
  2. 双击安装包,按提示安装
  3. 重启电脑
  4. 打开PowerShell,运行:docker --version

macOS安装

  1. 下载Docker Desktop for Mac
  2. 拖拽到Applications文件夹
  3. 启动Docker Desktop
  4. 打开终端,运行:docker --version

Linux安装(以Ubuntu为例)

# 更新软件包
sudo apt update# 安装依赖
sudo apt install apt-transport-https ca-certificates curl software-properties-common# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -# 添加Docker仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"# 安装Docker CE
sudo apt update
sudo apt install docker-ce# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker# 验证安装
docker --version

3. Docker核心概念详解

3.1 镜像(Image)

定义:镜像是一个只读的模板,用来创建Docker容器。

比喻:镜像就像是"程序安装包"或"模板",包含了运行应用所需的所有内容。

特点

  • 只读的
  • 分层存储
  • 可以基于其他镜像构建

3.2 容器(Container)

定义:容器是镜像的运行实例。

比喻:如果镜像是"安装包",那么容器就是"运行中的程序"。

特点

  • 可读写
  • 隔离的运行环境
  • 可以启动、停止、删除

3.3 仓库(Repository)

定义:仓库是集中存放镜像的地方。

比喻:仓库就像"应用商店",你可以从中下载各种镜像。

主要仓库

  • Docker Hub(官方)
  • 阿里云容器镜像服务
  • 腾讯云容器镜像服务

4. Docker常用命令大全

4.1 镜像相关命令

搜索镜像
# 搜索镜像
docker search nginx
docker search mysql
拉取镜像
# 拉取最新版本
docker pull nginx# 拉取指定版本
docker pull nginx:1.20# 从指定仓库拉取
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx:1.20
查看镜像
# 列出所有镜像
docker images# 查看镜像详细信息
docker inspect nginx:latest# 查看镜像历史
docker history nginx:latest
删除镜像
# 删除单个镜像
docker rmi nginx:latest# 删除多个镜像
docker rmi nginx:1.20 mysql:8.0# 强制删除
docker rmi -f nginx:latest# 删除所有未使用的镜像
docker image prune

4.2 容器相关命令

运行容器
# 基本运行
docker run nginx# 后台运行
docker run -d nginx# 端口映射
docker run -d -p 8080:80 nginx# 挂载数据卷
docker run -d -p 8080:80 -v /host/path:/container/path nginx# 环境变量
docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0# 容器名称
docker run -d --name my-nginx -p 8080:80 nginx# 交互式运行
docker run -it ubuntu:20.04 /bin/bash
http://www.xdnf.cn/news/986419.html

相关文章:

  • JSON5 模块的作用与区别
  • 图标异常问题
  • 【Linux】进程控制(下)---程序替换宝藏岛
  • 如何排查PHP-FPM进程CPU占用100%的间歇性问题 (2025)
  • Unity 服务器交互开发指南
  • 基于RocketMQ源码理解顺序写、刷盘机制与零拷贝
  • 海康对接摄像头
  • Chromium 136 编译指南 Windows篇:获取源代码(五)
  • 基于贝叶斯学习方法的块稀疏信号压缩感知算法
  • Spring核心框架完全指南 - 基础知识全解析
  • 关于界面存在AB测试后UI刷新空白的问题
  • 计算机网络 : 传输层协议UDP与TCP
  • 设计原则——KISS原则
  • 过拟合和欠拟合
  • RAG技术全解析:从概念到实践,构建高效语义检索系统——嵌入模型与向量数据库搭建指南
  • java每日精进 6.11【消息队列】
  • C++11的特性上
  • Cursor 编程实践 — 开发环境部署
  • 案例8 模型量化
  • 使用MyBatis-Plus实现数据权限功能
  • 【Unity3D优化】优化多语言字体包大小
  • swagger通过配置将enum自动添加到字段说明中
  • PHP如何检查一个字符串是否是email格式
  • 【微信小程序】| 在线咖啡点餐平台设计与实现
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio打造AingDesk AI聊天助手
  • list类型
  • SCADA|测试KingSCADA4.0信创版采集汇川PLC AC810数据
  • 开源夜莺支持MySQL数据源,更方便做业务指标监控了
  • xss分析
  • C2f模块 vs Darknet-53——YOLOv8检测效率的提升