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 流水线里跑构建和测试
相关推荐
小白的码BUG之路1 小时前
Docker -- 基本命令
java·docker·eureka
guo_wen_qiang2 小时前
jenkins流水线参数化配置
运维·docker·容器·jenkins·持续部署
打工仔折腾 AI2 小时前
Prometheus接入Pushgateway实战:二进制与Docker部署、指标推送与远程写入
后端·python·docker·容器·性能优化·prometheus·ai agent 实战
xianyuCcCcCCCcc2 小时前
Docker 容器与网络
网络·docker·容器
A.说学逗唱的Coke3 小时前
【云原生专题】Kubernetes 备份完全实战:用 Velero 搞定集群备份、恢复与跨集群迁移(附完整命令与踩坑记录)
云原生·容器·kubernetes
誰能久伴不乏14 小时前
保姆级 Docker 入门教程
docker·容器·eureka
vipxieliang19 小时前
Docker vs Podman vs containerd:容器运行时全景
docker·容器
vipxieliang19 小时前
数据持久化方案:卷、挂载、权限与备份恢复
docker·容器
vipxieliang19 小时前
Compose 生产级配置:从 demo 到可上线
docker