蓝戒博客

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

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

2026年1月14日 223点热度 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 中对话未来。

最新 热点 随机
最新 热点 随机
《生化危机》女主手搓AI记忆系统,48小时狂揽7千星!AI的长期记忆终于有解了? 用一条自然语言指令,让AI自动完成了调研、写稿、配音、剪辑全流程 你以为 AI 配音还在拼“像不像”,结果有人已经把“整个语音工作室”开源了 Claude Opus 4.7 上线:编程能力炸裂式跃升,Anthropic 手握更强模型却故意不发布 Gemma 4发布4天即遭"完全越狱",开源AI的安全与自由之争 一个文件让AI写代码不再"翻车":45K星的Karpathy指南火了
Dan Koe:不想打工?用这套方法把兴趣变成收入GitHub 爆火 4 万星项目:MiroFish,到底是 AI 新神话,还是下一代预测引擎DeerFlow 2.0:字节跳动开源的超级智能体框架,让AI研究、编码、创作一气呵成!Claude Code 生态大爆发:这周 GitHub 热点,已经不是工具升级,而是工作方式重写我把 Codex CLI 装上了“外挂大脑”:oh-my-codex 到底有多猛?别再盲下大模型了:用 llmfit 一秒看懂你的电脑到底能跑谁
时间日期格式化处理js类库:momentJS Mac下Flutter进行真机调试 TypeScript 工具类型分享:从常用到进阶,实现可维护的类型体系 vue项目开发的一些总结 一个文件让AI写代码不再"翻车":45K星的Karpathy指南火了 低门槛快速搭建为自己干活的 OpenClaw 打工虾
最近评论
渔夫 发布于 6 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 9 年前(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