docker基本知识

Docker 是什么

Docker 是一个开源的应用容器引擎,它能让开发者把应用连同它的运行环境(代码、依赖、配置、系统库等)一起打包成一个标准化的"容器",然后在任何装了 Docker 的机器上一致地运行。

用一句话概括:"Build once, run anywhere"(一次构建,到处运行)。

它解决什么问题?

传统部署方式里最头疼的是环境不一致------"在我电脑上能跑,到你电脑上就报错"。原因通常是依赖版本、系统配置、路径等环境差异。Docker 把整个环境固化进镜像里,从根本上消除了这个问题。


核心概念

概念 比喻 说明
镜像 (Image) 类 / 模板 / 光盘 只读的打包文件,包含应用和全部依赖,不可变
容器 (Container) 实例 / 运行的进程 由镜像启动出来的运行实例,可启动、停止、删除
Dockerfile 配方 / 制作说明 一份文本文件,描述如何一步步构建镜像
仓库/注册中心 (Registry) 应用商店 存放和分发镜像的地方,最常用的是 Docker Hub
数据卷 (Volume) 外接U盘 把容器内数据持久化到宿主机,防止容器删除时数据丢失

关系:Dockerfile → 构建出 镜像 → 运行出 容器。


常用方法(命令)

1. 生命周期管理

bash 复制代码
docker run -d -p 8080:80 --name myapp nginx   # 运行容器(后台、端口映射、命名)
docker ps                # 查看运行中的容器
docker ps -a             # 查看所有容器(含已停止的)
docker start / stop / restart 容器名    # 启动 / 停止 / 重启
docker rm 容器名          # 删除容器
docker exec -it 容器名 bash   # 进入容器内部操作

2. 镜像管理

bash 复制代码
docker pull nginx        # 拉取镜像
docker images            # 查看本地镜像列表
docker rmi 镜像名         # 删除镜像
docker build -t myapp:v1 .   # 用当前目录的 Dockerfile 构建镜像

3. 数据与日志

bash 复制代码
docker logs -f 容器名     # 查看实时日志
docker volume ls          # 查看数据卷
docker cp 容器名:/路径 .   # 拷贝容器内文件到宿主机

4. 一个最小 Dockerfile 示例

dockerfile 复制代码
# 基于 Node 镜像
FROM node:18
# 设置工作目录
WORKDIR /app
# 拷贝源码
COPY . .
# 安装依赖并启动
RUN npm install
CMD ["node", "server.js"]

构建并运行:

bash 复制代码
docker build -t myapp .
docker run -p 3000:3000 myapp

docker run -itd 各种参数 镜像名:标签

表格

参数 含义
-i interactive,保持标准输入开启,容器内可交互
-t 分配一个伪终端(TTY)
-d detached,容器在后台运行,不占用当前终端

Docker 的主要作用

  1. 环境标准化:开发、测试、生产环境完全一致,消除"在我这能跑"的问题。
  2. 快速部署:秒级启动,比传统虚拟机(VM)轻量得多------VM 虚拟整个操作系统,容器只共享内核、隔离进程。
  3. 资源隔离与高效:多个容器互不干扰,占用资源小,单台机器能跑更多服务。
  4. 微服务架构的基础:每个服务一个容器,独立开发、部署、扩容。
  5. 一键交付:交付一个镜像,客户/运维拉下来就能跑,无需装环境。

适用场景

  • 个人本地搭建开发环境(数据库、中间件等一条命令搞定)
  • 应用打包交付、部署上云(配合 K8s 做编排)
  • 测试环境快速复用和清理
  • CI/CD 流水线里跑构建和测试
相关推荐
许知珩8 分钟前
Kubernetes 存储与配置管理 ——Volume、ConfigMap 与 Secret 实战详解
云原生·容器·kubernetes
Flynn Liang4 小时前
5分钟跑通MQTT:EMQX Docker部署+MQTTX联调(2026最新版,含踩坑)
物联网·mqtt·docker·iot·emqx
丨晨 丨5 小时前
K8s存储卷与配置管理实战
云原生·容器·kubernetes
暖核5 小时前
K8s 存储与配置:Volume PV‑PVC ConfigMap Secret 实战解析
云原生·容器·kubernetes
木雷坞6 小时前
Docker Compose端口映射排查:用port和inspect定位网页访问失败
运维·docker·容器
码间留白18 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
Vex2une18 小时前
Docker Desktop WSL2后端:2026年性能调优与避坑实战指南
windows·docker·desktop·gpu容器·容器开发·virtiofs·buildkit
程序员老赵19 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
TTATTC19 小时前
为什么单会话聊天做不好复杂工程?Claude Code 创作者的并发 Worktree 与记忆闭环实践
docker·开源
TTATTC19 小时前
状态机驱动长事务,还是 DAG 编排高并发?高可靠业务流程引擎的双核架构设计
docker·开源