欢迎光临
我们一直在努力

一文入门 Docker(零基础保姆级教程,彻底搞懂容器化部署)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

摘要:Docker 是现在后端开发、服务器部署、微服务、自动化运维的必备技能。传统部署环境杂乱、版本冲突、打包麻烦,而 Docker 一次打包、处处运行。本文从零通俗讲解 Docker 原理、虚拟机与容器区别、核心架构、镜像/容器/仓库概念、高频命令、实战部署,新手看完即可独立完成项目容器化部署。

关键词:Docker入门;容器化部署;Docker命令;微服务部署;环境一致性

一、为什么要学 Docker?(解决什么问题)

新手开发、部署项目最头疼的问题:本地能跑,服务器跑不起来。

原因基本都是:环境版本不一致、依赖缺失、系统配置不同、库版本冲突。

Docker 的终极作用:环境统一、一次打包、到处运行。

不管是 Windows、Mac、Linux,只要安装了 Docker,容器内的运行环境完全一致,彻底解决「环境问题」。

企业现在所有微服务、云服务器、自动化部署、CI/CD、集群部署,全部基于 Docker。

二、Docker 是什么?

Docker 是一款开源的容器化部署工具,可以将代码、依赖、运行环境、配置统一打包为一个容器,实现标准化部署。

2.1 核心优势

  • 环境一致:本地、测试、生产环境完全统一

  • 部署极速:启动服务秒级完成,告别繁琐安装配置

3.2 Docker 容器

共用宿主机内核,只打包应用和依赖,无完整系统,轻量、秒启、资源极小。

结构:物理机系统 → Docker引擎 → 多个隔离容器(应用+依赖)

3.3 核心对比

对比项

虚拟机

Docker容器

系统级别

完整独立操作系统

共享宿主机内核,无完整系统

启动速度

分钟级

秒级

资源占用

极高

极低

隔离性

完全隔离

进程级别隔离

部署场景

系统级虚拟化

应用级部署、微服务

四、Docker 三大核心概念(重中之重)

学会这三个概念,Docker 就学懂了 80%。

4.1 镜像(Image)

镜像就是只读模板,相当于安装包、系统快照。

包含:运行环境、依赖、程序、配置,不可修改。

例如:mysql镜像、redis镜像、nginx镜像、java镜像。

4.2 容器(Container)

镜像运行起来就是容器,是真实运行的服务实例。

容器是可读写、可运行、可停止、可删除的服务进程。

镜像静态、容器动态。

4.3 仓库(Repository)

存放镜像的云端仓库,默认官方仓库:Docker Hub。

需要什么环境直接拉取镜像,无需手动安装配置。

五、Docker 整体工作架构

C/S 架构:客户端 + 服务端

  • Docker Client:我们输入命令的终端

  • Docker Daemon:后台守护进程,负责管理镜像、容器、网络、存储

  • Registry:镜像仓库

流程:客户端输入命令 → 守护进程执行 → 拉取镜像/创建容器/启动服务

六、Docker 高频核心命令(日常全覆盖)

所有命令熟记即可满足 100% 日常开发部署需求。

6.1 基础信息命令

# 查看Docker版本
docker version

# 查看Docker信息
docker info

# 检测docker是否启动
docker

6.2 镜像操作命令

# 查看本地所有镜像
docker images

# 搜索镜像
docker search mysql

# 拉取镜像(默认最新版latest)
docker pull mysql

# 拉取指定版本
docker pull mysql:5.7

# 删除镜像
docker rmi 镜像ID

6.3 容器操作命令(最常用)

# 查看正在运行的容器
docker ps

# 查看所有容器(包含已停止)
docker ps -a

# 启动容器(示例nginx)
docker run -d –name nginx-test -p 8080:80 nginx

# 参数说明:
# -d 后台运行
# –name 给容器起名
# -p 宿主机端口:容器端口 端口映射

# 停止容器
docker stop 容器ID

# 启动已存在容器
docker start 容器ID

# 重启容器
docker restart 容器ID

# 删除容器(必须先停止)
docker rm 容器ID

6.4 容器进阶实操命令

# 进入容器内部
docker exec -it 容器ID /bin/bash

# 查看容器日志
docker logs 容器ID

# 实时查看日志
docker logs -f 容器ID

# 退出容器
exit

6.5 数据卷

6.6 仓库

# 构建镜像

# 基础镜像为python:3.10-slim

FROM python:3.10-slim

# 设置环境变量

ENV HOME=/app \\

PORT=5000

# 设置工作目录

WORKDIR $HOME

# 将requirements.txt复制到工作目录

COPY requirements.txt $HOME/requirements.txt

# 安装依赖

RUN pip install -r requirements.txt

# 复制当前目录下的所有文件到工作目录

COPY . /app

# 暴露端口

EXPOSE $PORT

# 运行

CMD ["python", "web.py"]

七、Docker 核心核心机制(新手必懂)

7.1 端口映射 -p

容器是隔离的,外部无法直接访问,需要通过 -p 宿主机端口:容器端口 映射。

访问宿主机端口 = 访问容器服务。

7.2 数据挂载 -v

容器删除后数据会丢失,通过 -v 挂载目录 将容器数据挂载到宿主机,实现数据持久化。

八、Dockerfile 简单入门(项目打包核心)

Dockerfile 是镜像构建脚本,用来自定义打包自己的项目镜像。

# 基础镜像
FROM java:8

# 拷贝jar包到容器
COPY demo.jar /app.jar

# 暴露端口
EXPOSE 8080

# 启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

九、新手常见避坑指南

  • ❌ 不要直接删除运行中的容器,先 stop 再 rm

  • ❌ 不做数据挂载,容器重建数据全部丢失

  • ❌ 端口被占用导致启动失败,更换宿主机端口

  • ✅ 重要服务一定要配置 开机自启

  • ✅ 尽量使用指定版本镜像,不要一律 latest

十、学习总结

本文带你零基础彻底入门 Docker,核心记住:

  • Docker 解决环境不一致问题,一次打包到处运行

  • 镜像静态、容器动态,镜像是模板,容器是实例

  • 核心操作:拉镜像、启容器、端口映射、日志查看、进入容器

  • 企业必备:Docker 是微服务、云部署、自动化运维的基础

  • 写在最后

    现在的后端开发、运维、测试、云原生岗位,Docker 已是标配技能。学会 Docker 可以极大提升项目部署效率,告别传统繁琐的环境搭建与部署方式。

    本文为零基础入门完整版,建议收藏!后续持续更新 Docker Compose、容器集群、微服务容器化实战教程。

    点赞+收藏+关注,持续更新后端零基础全套教程!

    赞(0)
    未经允许不得转载:171主机测评 » 一文入门 Docker(零基础保姆级教程,彻底搞懂容器化部署)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址