当前位置: 首页 > article >正文

Docker 速通(总结)

Docker 命令

镜像
  • docker build: 从 Dockerfile 构建镜像。
  • docker pull: 从 Docker Hub 或其他注册表拉取镜像。
  • docker push: 将镜像推送到 Docker Hub 或其他注册表。
  • docker images: 列出本地镜像。
  • docker rmi: 删除本地镜像。
容器
  • docker run: 创建并启动一个新的容器。
  • docker start: 启动一个已停止的容器。
  • docker stop: 停止一个正在运行的容器。
  • docker ps: 列出正在运行的容器(-a 参数列出所有容器)。
  • docker exec: 在运行的容器中执行命令。
  • docker rm: 删除一个或多个容器。
  • docker logs: 查看容器的日志输出。
参数
  • -d: 后台运行容器。
  • -p: 端口映射(例如:-p 8080:80)。
  • -v: 挂载卷或目录(例如:-v /host/path:/container/path)。
  • -e: 设置环境变量(例如:-e MY_VAR=value)。
  • --name: 为容器指定名称。
  • --network: 连接到自定义网络。

存储

目录挂载
  • -v /host/path:/container/path: 将主机上的目录挂载到容器中的指定路径。
  • -v /host/file:/container/file: 将主机上的文件挂载到容器中的指定路径。
卷映射
  • -v my_volume:/container/path: 使用命名卷将数据持久化。
  • docker volume create my_volume: 创建一个新的卷。
  • docker volume ls: 列出所有卷。
  • docker volume rm my_volume: 删除卷。

网络

自定义网络
  • docker network create my_network: 创建一个新的自定义网络。
  • docker network ls: 列出所有网络。
  • docker network inspect my_network: 查看网络的详细信息。
  • docker network connect my_network my_container: 将容器连接到自定义网络。
  • docker network disconnect my_network my_container: 将容器从自定义网络断开。

Compose

语法
  • version: 指定 Compose 文件格式的版本(例如:version: '3.8')。
  • services: 定义服务(例如:db, web)。
  • image: 指定基础镜像。
  • build: 指定构建上下文和 Dockerfile。
  • ports: 端口映射(例如:- "8080:80")。
  • volumes: 挂载卷或目录(例如:- "/host/path:/container/path")。
  • environment: 设置环境变量(例如:- "MY_VAR=value")。
  • depends_on: 依赖关系(例如:- db)。
  • networks: 连接到自定义网络。
  • restart: 重启策略(例如:unless-stopped)。
命令
  • docker-compose up -d: 后台启动服务。
  • docker-compose down: 停止并删除服务。
  • docker-compose ps: 列出服务状态。
  • docker-compose restart <service_name>: 重启服务。
  • docker-compose build: 重新构建服务。
  • docker-compose config: 检查配置文件的有效性。
  • docker-compose logs <service_name>: 查看服务日志。

Dockerfile

指令
  • FROM: 指定基础镜像(例如:FROM python:3.9-slim)。
  • WORKDIR: 设置工作目录(例如:WORKDIR /app)。
  • RUN: 执行命令并创建新的镜像层(例如:RUN pip install -r requirements.txt)。
  • COPY: 复制文件或目录(例如:COPY . /app)。
  • ADD: 类似于 COPY,但支持自动解压压缩文件(例如:ADD myapp.tar.gz /app)。
  • ENV: 设置环境变量(例如:ENV MY_ENV_VAR=my_value)。
  • EXPOSE: 声明容器运行时需要监听的端口(例如:EXPOSE 8000)。
  • CMD: 指定容器启动时要运行的默认命令(例如:CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"])。
  • ENTRYPOINT: 指定容器启动时要运行的命令(例如:ENTRYPOINT ["uwsgi", "--ini", "uwsgi.ini"])。
  • VOLUME: 创建挂载点(例如:VOLUME /data)。

Docker 的分层存储机制

  • 镜像层:Docker 镜像是由一系列只读层组成的。每一层都是前一层的增量修改。
  • 写时复制 (Copy-on-Write, CoW):当容器运行时,Docker 会创建一个可写层来保存所有的更改。只读层保持不变,只有在写操作发生时才会创建新的层。
  • 联合文件系统 (UnionFS):Docker 使用联合文件系统来管理这些层,使得多层文件系统可以合并成一个统一的视图。
  • 缓存:Docker 构建过程中,如果某一层没有变化,Docker 会使用之前的缓存层,从而加快构建速度。

总结

  • Docker 命令:用于管理镜像和容器的基本命令。
  • 存储:通过目录挂载和卷映射实现数据持久化。
  • 网络:自定义网络使容器间通信更灵活。
  • Compose:简化多容器应用的管理和部署。
  • Dockerfile:定义如何构建镜像的脚本。
  • 分层存储机制:提高构建效率和资源利用率。

希望这些总结对你有所帮助!如果你有任何问题,请随时提问。


http://www.kler.cn/a/595566.html

相关文章:

  • 【Unity基础】Unity中角色动画的三种实现方式
  • DAY13 线程池、死锁、线程状态、计时器
  • 如何在ubuntu上安装zookeeper
  • 在 Elasticsearch 中探索基于 NVIDIA 的 GPU 加速向量搜索
  • w265基于Spring Boot库存管理系统
  • 【C++】static、内部类
  • Vue.js 过滤器(Filters):简化文本格式化的利器
  • 测试Claude3.7 sonnet画蛋白质
  • 「AI+办公」共学(四):办公综合应用
  • 实现拖拽图片验证的基本步骤
  • AI 时代的通信新范式:MCP(模块化通信协议)的优势与应用
  • 关于神经网络中的激活函数
  • 第2.1节:AWK脚本结构
  • Resume全栈项目(.NET)
  • 华为总部-华为东莞松山湖基地参观游学攻略
  • 【DeepSeek 学C+】effective modern c+ 条款七 初始化
  • PurpleLlama大模型安全全套检测方案
  • OpenCV ML 模块使用指南
  • 机器学习-04-分类算法-02贝叶斯算法案例
  • 电脑自动关机故障维修案例分享