阅读 Dockerfile 并运行容器

Containerization and Virtualization Concepts

Julia Ostheimer

Freelance AI Consultant

Docker 术语回顾

 

从 Dockerfile 到 Docker 容器

Containerization and Virtualization Concepts

Docker 指令 vs. Docker 命令

  • Docker 指令:在 Dockerfile 中定义如何构建镜像

Dockerfile 中的 Docker 指令

  • Docker 命令:通过命令行界面(CLI)执行的命令

CLI 中的 Docker 命令

Containerization and Virtualization Concepts

Dockerfile 的格式

 

Dockerfile——注释

Containerization and Virtualization Concepts

Dockerfile 的格式

 

Dockerfile——指令

Containerization and Virtualization Concepts

Dockerfile 的格式

 

Dockerfile——Docker 指令的命令

Containerization and Virtualization Concepts

Dockerfile 的格式

 

Dockerfile——Docker 指令的参数

Containerization and Virtualization Concepts

Dockerfile 的顺序执行

  • 顺序执行
  • Dockerfile 开头:
    • 元数据
    • 注释
    • 参数
    • FROM 指令
Containerization and Virtualization Concepts

Docker 指令概览

  • 重要的 Docker 指令
    • FROM
    • COPY
    • RUN
    • ENTRYPOINT
Containerization and Virtualization Concepts

FROM 指令

  • 指定现有 Docker 镜像
  • 定义要基于其构建的镜像
    • "起点"  

语法:

FROM <name_of_image>

示例:

# 定义要基于其构建的镜像
FROM python:3.10
Containerization and Virtualization Concepts

COPY 指令

  • 复制文件或目录
    • 从源 (<source>) 到目标 (<destination>)
    • 供后续 Docker 指令使用的文件  

语法:

COPY <source> <destination>

示例:

# 将文件/文件夹复制到容器主目录
COPY . .
Containerization and Virtualization Concepts

RUN 指令

  • 在容器内运行命令
    • 可运行任意可在 CLI 执行的命令

 

语法:

RUN <command>

示例:

# 安装应用依赖
RUN pip install -r requirements.txt
Containerization and Virtualization Concepts

ENTRYPOINT 指令

  • 定义容器的默认行为
    • 指定启动时运行的命令
    • 容器的主要用途  

语法:

ENTRYPOINT ["command", "argument"]

示例:

# 容器启动时运行脚本
ENTRYPOINT ["python", "hello_world.py"]
Containerization and Virtualization Concepts

将指令组装成 Dockerfile

# 定义要基于其构建的镜像
FROM python:3.10
Containerization and Virtualization Concepts

将指令组装成 Dockerfile

# 定义要基于其构建的镜像
FROM python:3.10

# 将文件/文件夹复制到容器主目录
COPY . .
Containerization and Virtualization Concepts

将指令组装成 Dockerfile

# 定义要基于其构建的镜像
FROM python:3.10

# 将文件/文件夹复制到容器主目录
COPY . .

# 安装应用依赖
RUN pip install -r requirements.txt
Containerization and Virtualization Concepts

将指令组装成 Dockerfile

# 定义要基于其构建的镜像
FROM python:3.10

# 将文件/文件夹复制到容器主目录
COPY . .

# 安装应用依赖
RUN pip install -r requirements.txt

# 容器启动时运行脚本
ENTRYPOINT ["python", "hello_world.py"]
Containerization and Virtualization Concepts

docker build 命令

  • 从 Dockerfile 构建 Docker 镜像
    • Dockerfile 需位于构建上下文 (<context>)
    • 通过 CLI 的 Docker 客户端执行命令

 

语法:

docker build <context>
Containerization and Virtualization Concepts

docker run 命令

  • 从镜像创建并运行容器
    • 需要将镜像名作为参数 (<name_of_image>)
    • 通过 CLI 的 Docker 客户端执行命令

 

语法:

docker run <name_of_image>
Containerization and Virtualization Concepts

Let's practice!

Containerization and Virtualization Concepts

Preparing Video For Download...