Docker 笔记

  • 1023 字
  • 次阅读

docker 和 LXC 都基于 Linux 内核的 cgroups 和 Namespace 机制,Docker 底层最初直接使用了 LXC,后来发展为 libcontainer。

k8s 底层最初可以使用 docker,后面使用 containerd 这样的 CRI 运行时

Dockerfile

Dockerfile 是一个文本格式的配置文件,用户可以使用它来自动化地创建自定义的 Docker 镜像。它包含了一系列指令和参数,这些指令按顺序执行,最终生成一个包含了应用程序及其所有依赖的、可移植的镜像。

关键指令

  • FROM:指定基础镜像。每个 Dockerfile 都必须以 FROM 指令开始。例如 FROM python:3.9-slim。
  • WORKDIR:设置容器内的工作目录,后续的 RUN, CMD, COPY, ADD 等指令都在此目录下执行。
  • COPY:将宿主机的文件或目录复制到镜像的文件系统中。
  • RUN:在镜像构建过程中执行命令。常用于安装软件包、依赖库等。例如 RUN pip install -r requirements.txt。
  • EXPOSE:声明容器在运行时监听的端口。这主要是一个文档性指令,并不会实际发布端口。
  • CMD:提供容器启动时默认执行的命令。如果 docker run 命令指定了其他命令,CMD 会被覆盖。

Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 配置文件(docker-compose.yml),您可以描述应用程序的各个服务(容器)、网络、卷等依赖关系,并一键启动整个应用栈。

需要注意部分修改配置后需要删除已经创建的 volumes,自动移除有时候并不会移除,通过 docker-compose file 创建的 volumes 需要手动移除,单纯修改不会重新创建

常用命令
注意 ubuntu 上是 v2 了,通常都用docker compose

命令 说明
docker-compose up 启动所有服务(后台运行加 -d)
docker-compose down 停止并删除容器、网络
docker-compose build 重新构建服务镜像
docker-compose logs 查看服务日志
docker-compose ps 查看运行中的服务状态
打赏
打赏提示信息
分享
分享提示信息