蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
融合 AI、架构与工程实践,沉淀方法论,构建可持续的技术价值。
  1. 首页
  2. 研发说
  3. 正文

Docker学习(一):入门教程从基础到实战篇

2026年1月14日 56点热度 0人点赞 0条评论

Docker 是近年来最流行的容器化技术之一,它通过容器(Container)将应用及其依赖打包,实现“一次构建,到处运行”。在开发、测试和部署环节,Docker 都能显著提高效率和一致性。本文将带你从基础概念到常用操作,再到示例配置,快速掌握 Docker 入门技能。


一、Docker 基础概念

1. 容器(Container)

容器是一种轻量级、可移植的虚拟化技术,它包含应用及其所有依赖,但共享宿主机的内核资源。相比传统虚拟机,容器启动更快,占用更少资源。

2. 镜像(Image)

镜像是容器的静态模板,包含应用运行所需的文件和配置。容器是镜像的运行实例。你可以把镜像理解为“快照”,容器则是镜像启动后的运行状态。

3. Docker Engine

Docker Engine 是 Docker 的核心组件,负责管理镜像和容器。它可以在 Windows、macOS 或 Linux 上安装。

4. Docker Hub

Docker Hub 是官方提供的镜像仓库,类似 GitHub,用于存储和分享镜像。你可以直接拉取官方镜像,也可以推送自定义镜像。


二、安装 Docker

Docker 官方提供跨平台安装方式:

  • Windows / macOS:下载 Docker Desktop 安装包并安装
  • Linux:通过包管理器安装 Docker Engine,例如:
Bash
sudo apt update
sudo apt install docker.io -y
sudo systemctl enable --now docker

安装完成后,运行:

Bash
docker --version

确认 Docker 正确安装。


三、常用 Docker 命令

1. 镜像操作

命令作用
docker pull <镜像名>拉取镜像
docker images查看本地镜像列表
docker rmi <镜像名>删除镜像

2. 容器操作

命令作用
docker run -it --name mycontainer ubuntu /bin/bash启动一个容器并进入交互模式
docker ps查看运行中的容器
docker ps -a查看所有容器(包括已停止的)
docker stop <容器名>停止容器
docker rm <容器名>删除容器

3. 其他实用命令

Bash
docker logs <容器名>       # 查看容器日志
docker exec -it <容器名> /bin/bash  # 进入正在运行的容器
docker stats                # 查看容器实时资源使用情况

四、Dockerfile 示例

Dockerfile 是定义镜像的文件,通过它可以自定义构建镜像。

示例:创建一个基于 Node.js 的镜像

Dockerfile
# 使用官方 Node 镜像作为基础镜像
FROM node:18

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制项目文件
COPY . .

# 容器启动命令
CMD ["node", "index.js"]

# 对外暴露端口
EXPOSE 3000

构建镜像:

Bash
docker build -t my-node-app .

运行容器:

Bash
docker run -p 3000:3000 my-node-app

五、docker-compose.yml 示例

docker-compose 用于定义和管理多容器应用。示例:Node.js + MongoDB

YAML
version: "3.8"
services:
  app:
    build: .
    container_name: my-node-app
    ports:
      - "3000:3000"
    environment:
      - MONGO_URI=mongodb://mongo:27017/mydb
    depends_on:
      - mongo

  mongo:
    image: mongo:6
    container_name: my-mongo
    ports:
      - "27017:27017"
    volumes:
      - mongo-data:/data/db

volumes:
  mongo-data:

启动服务:

Bash
docker-compose up -d

停止服务:

Bash
docker-compose down

六、示例项目结构

my-node-app/
├── Dockerfile
├── docker-compose.yml
├── package.json
├── package-lock.json
└── index.js
  • Dockerfile:定义镜像构建步骤
  • docker-compose.yml:定义多容器服务
  • index.js:应用入口
  • package.json:依赖配置

七、学习小结

  1. Docker 提供轻量化、可移植的容器环境,适合现代应用开发与部署
  2. 镜像和容器是 Docker 的核心概念
  3. Dockerfile 和 docker-compose.yml 是构建和管理容器的关键文件
  4. 常用命令:docker run, docker ps, docker build, docker-compose up 等

八、后续学习方向

  • 学习 Docker 网络和数据卷(Volumes)
  • 深入理解镜像层(Layer)和缓存机制
  • 使用 Docker Swarm 或 Kubernetes 做容器编排
  • 在 CI/CD 流程中集成 Docker

标签: Docker Docker 入门 docker-compose Dockerfile 容器化
最后更新:2026年1月15日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
前端开发 TanStack 化:从“框架思维”到“能力组合”的工程演进 Docker 进阶(七):容器化体系设计总结与生产落地经验复盘 Docker 进阶(六):生产环境中的 Docker 安全、监控与日志体系 Docker 进阶(五):Docker + CI/CD —— 从代码提交到自动部署 Docker 进阶(四):使用 Docker Swarm 与 Kubernetes 实现容器编排 Docker 进阶(三):深入理解镜像层(Layer)与缓存机制
Workbox:可直接用于生产环境的 Service Worker 利器快速构建项目文档网站:主流文档站点工具选型与对比DiceBear:30+ 风格、完全可定制的开源头像生成解决方案ES2015 → ES2025:JavaScript 十年演进全景回顾与核心 API 总结ECMAScript 2025(ES16)深度解析20 个现代 JavaScript API 深度盘点
WebAI 技术深潜:TensorFlow.js 与 ONNX Runtime Web 的架构与实战解析 Hybrid 开发全攻略:从原理到实战 Sublime Text3 快捷键精华版 移动web开发远程真机调试工具weinre调试方法 Node Modules Inspector:可视化高效查看项目前端依赖体系 websocket断线重连实践解决方案
最近评论
渔夫 发布于 3 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2