Docker 核心知识点

一、Docker 是什么

Docker = 把应用 + 依赖 + 环境一起打包,放到一个轻量、隔离、可移植的容器里,在哪都能跑。

二、3 个核心概念

  1. 镜像(Image)
  • 只读模板 - 相当于「安装包」「系统盘」

  • 例:`nginx`、`centos`、`tomcat`

  1. 容器(Container)
  • 镜像运行后的实例

  • 相当于虚拟机里跑的系统

  • 可启动、停止、删除

  1. 仓库(Registry)
  • 存放镜像的地方

  • 官方:Docker Hub

  • 私有:Harbor

三、镜像最常用命令

docker images # 查看本地镜像

docker search 名字 # 搜索镜像

docker pull 名字:tag # 拉取镜像(不写tag默认latest)

docker rmi 镜像ID # 删除镜像

docker rmi -f 镜像ID # 强制删

四、容器最常用命令

  1. 查看容器

docker ps # 看运行中的

docker ps -a # 看所有(包括停止的)

  1. 创建并启动容器

docker run [选项] 镜像 [命令]

最常用选项:

  • `-d` 后台运行 - `

-p 主机端口:容器端口` 端口映射

  • `--name` 给容器起名字

  • `-v 主机目录:容器目录` 挂载目录(持久化)

  • `-e` 设置环境变量

示例:docker run -d -p 80:80 --name mynginx nginx

  1. 进入容器

docker exec -it 容器ID /bin/bash

  1. 停止/启动/删除

docker stop 容器ID

docker start 容器ID

docker rm 容器ID # 删除已停止容器

docker rm -f 容器ID # 强制删

五、Docker 三大核心技术

  1. namespace → 资源隔离(PID、网络、用户、文件等)

  2. cgroups → 资源限制(CPU、内存、磁盘)

  3. UnionFS → 镜像分层存储(镜像轻、快、复用)

六、镜像分层

  • 镜像一层一层叠加

  • 下层只读,上层可写

  • 相同层可以共享,节省空间

七、Dockerfile 核心指令

dockerfile FROM # 基础镜像

MAINTAINER # 作者 RUN

构建时执行命令

COPY # 复制文件

ADD # 复制(支持解压/URL)

WORKDIR # 设置工作目录 EXPOSE

暴露端口 CMD # 容器启动命令(只有最后一个生效)

ENTRYPOINT # 启动命令(不会被覆盖)

八、容器数据持久化

容器删了数据就没了 → 必须用 -v 挂载

-v /主机目录:/容器内目录

九、Docker 网络

  • bridge:默认,独立网络,端口映射访问

  • host:和主机共享网络

  • none:无网络

十、Docker 与虚拟机区别

  • Docker 轻量、秒启动、共享内核

  • VM 重量级、启动慢、有独立OS

十一、一句话串起整个Docker

拉镜像 → 跑容器 → 进容器 → 改配置 → 挂载数据 → 建镜像 → 推仓库

相关推荐
惊岁晚1 小时前
【WSL】anaconda安装配置
linux·运维·服务器
陈皮糖..1 小时前
Ansible实战教程----使用Ansible角色自动化部署HTTPD服务
linux·运维·自动化·云计算·ansible
Benszen1 小时前
K8S存储管理:从Volume到PV/PVC详解
云原生·容器·kubernetes
liulilittle2 小时前
解决 liburing 编译时缺失 `linux/time_types.h` 的问题
linux·运维·服务器·ubuntu·shell
云深麋鹿2 小时前
C++ | 手搓一个string类
开发语言·c++·容器
虾..2 小时前
Linux 自定义协议完成网络版本计算器
linux·运维·网络
色空大师2 小时前
【Linux ln 命令详解】
linux·运维·服务器·链接·ln
星辰_mya2 小时前
jvm——时不我待
运维·服务器·jvm·面试
..过云雨2 小时前
【负载均衡oj项目】04. oj_server题目信息获取、界面渲染、负载均衡、后台交互功能
运维·c++·html·负载均衡·交互