Docker 教程
January 22, 2026

Docker 教程

Docker相关的概念

“核心软件” vs 基于“核心软件”的UI

Docker engine:通常说的Docker都是指Docker engine,以命令行形式交互,常见于Linux

Docker desktop:在桌面操作系统中使用的Docker,通过图形界面交互,常见于Windows、MacOS

文档:Docker engine

文档:Docker Desktop

“模板” vs 基于“模板”的“成品”

Docker image:包含了创建容器(container)所需要的全部文件,包含程序、库文件等。是容器的“模板”。

Docker container:基于镜像(image)创建的独立进程,其运行环境与其他的容器、宿主机都是独立的。是基于“模板”的“成品”。

# 基于hello-world镜像运行一个容器 可以指定其他命令 如果镜像不存在则自动拉取 详见docker run --help
docker run hello-world

# 查看本地已有的所有镜像
docker images

# 拉取一个镜像
docker pull hello-world:linux

“模板仓库”

Docker registry

示例:docker hub hello-world image

让多个“成品”协同运行

Docker compose

示例:docker compose: wordpress-mysql

Docker原理

Docker利用Linux内核提供的Namespace隔离与Cgroups限制,实现轻量容器化运行,并通过分层镜像技术实现快速部署与复用。

# 查看内核版本
uname -r

# 查看容器内核版本 确认是否一致
docker run ubuntu:18.04 uname -r
# 或
docker run ubuntu:18.04 bash
uname -r 

Docker使用场景

  1. 应用隔离
  2. 多版本环境共存
  3. 便捷打包和部署

Docker操作

image管理

docker build / Dockerfile

作用:根据Dockerfile文件构建镜像

示例:Dockerfile 和 docker compose.yml

文档:docker build

# 构建一个包含curl命令的ubuntu镜像 命名为myubuntu:1.0

# 确认原版镜像不带curl命令
docker run ubuntu:18.04 curl -V

# Dockerfile myubuntu:1.0
FROM --platform=$BUILDPLATFORM ubuntu:18.04 AS base
WORKDIR /app
RUN apt-get update && apt-get install curl -y 

# 构建myubuntu:1.0
docker build -t myubuntu:1.0 .

docker run myubuntu:1.0 curl -y

docker pull [ image ]

作用:拉取镜像到本地

示例:docker hub hello-world image

文档:docker pull

docker pull python:3.11.14-alpine3.23

docker image ls / docker images

简写:docker images

作用:显示本地镜像列表

文档:docker image ls

docker image rm [ image ]

简写:docker rmi

作用:删除镜像

文档:docker image rm

docker image inspect [ image ]

简写:docker inspect

作用:检视镜像信息

文档:docker image inspect

# Dockerfile myubuntu:2.0
FROM --platform=$BUILDPLATFORM ubuntu:18.04 AS base
WORKDIR /app
RUN apt-get update && apt-get install curl -y
CMD curl -V

# docker build myubuntu:2.0 
docker build -t myubuntu:2.0 .

docker inspect mybuntu:1.0
docker inspect mybuntu:2.0

*docker image save [ image ]

简写:docker save

作用:保存镜像为tar文件,与docker load搭配使用

文档:docker image save

*docker image load [ image ]

简写:docker load

作用:将镜像tar文件载入docker,与docker save搭配使用

文档:docker image load

*docker image import [ image ]

简写:docker import

作用:将tar文件载入docker,原来定义的镜像层、命令会失效,变为一层新创建的镜像层

文档:docker image import

container管理

docker container run

简写:docker run

作用;创建新容器

文档:docker container run

参数:

  1. -i, –interactive
  2. -t, –tty
  3. -d, –detach
  4. -e, –env
  5. -v, –volume
  6. –restart
  7. –gpus
  8. –privileged
  9. –network
    1. host
    2. bridge 默认
    3. Networking
  10. –rm
  11. -p, –publish
docker run --rm -it -v ~/project/docker-101/getting-started:/data myubuntu:2.0 bash

docker container rm

简写:docker rm

作用:删除容器

文档:docker container rm

docker container start / stop

简写:docker start / docker stop

作用:启动/停止容器

docker container start

docker container stop

docker container ls / docker ps

简写:docker ps

作用:查看容器状态

docker container ls

docker container inspect

简写:docker inspect

作用:检视容器信息

docker container inspect

docker container update / rename

简写:docker update / rename

作用:更新容器配置

docker container update

docker container rename

docker compose

作用:根据docker-compose文件运行多个容器

示例:docker compose: wordpress-mysql

*docker container commit

简写:docker commit

作用:根据当前容器创建新镜像,保留原镜像分层、Entrypoint等原镜像信息,以及修改后的文件系统

docker container commit

docker 

docker container export

简写:docker export

作用:将当前容器的文件系统导出为tar文件,不保留原镜像分层、Entrypoint等原镜像信息,但有修改后的文件系统

docker container export

*volume管理

volume是docker中用于持久化数据的机制,可挂载在多个容器中共享、复用,作为docker run -v的补充

docker volume create

作用:创建数据卷

docker volume create

docker volume inspect

作用:检视数据卷

docker volume inspect

docker volume ls

作用:查看所有数据卷

docker volume ls

docker volume rm

作用:删除数据卷

docker volume rm

*比较save / load / export / import

Docker image load vs. import

命令 对象 是否保留镜像层 是否包含历史、环境变量、ENTRYPOINT 用途
docker save 镜像 镜像备份、迁移
docker load 导入镜像 恢复 save 导出的镜像
docker export 容器 ❌ 单层 ❌ 丢失元数据 导出容器文件系统
docker import 生成镜像 ❌ 单层生成 ❌ 不含构建历史 基于容器快照构建镜像

*比较commit / export

特性 docker commit docker export + import
操作对象 容器 容器
是否包含容器修改 ✔ 包含 ✔ 包含
是否保留镜像分层 ✔ 保留(可增加新层) ❌ 丢失,只有一层
是否保留元数据(CMD/ENV/EXPOSE等) ✔ 保留 ❌ 丢失(全部清空)
是否有构建历史 ✔ 有(但不如 Dockerfile 可控) ❌ 无构建历史
得到镜像方式 直接生成新镜像 export 后再 import
常用场景 快速固化容器成果 制作最小化镜像、备份文件系统

文档结构

Home

  1. Get started:入门介绍 Get started
  2. Guides:一些针对特定主题的使用向导 https://docs.docker.com/guides/

3. Manuals:使用手册 https://docs.docker.com/manuals/ 1. 4. Reference:类似命令文档,方便查阅。主要看CLI reference docker 1.

拓展

  1. 在docker容器中使用nvidia-smi验证显卡配置正常
    1. 需要另外安装container toolkit
  2. 在自己的电脑上运行不同版本的CUDA容器
    1. 直接运行容器,docker兼容