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

docker中 contriner 和 images 什么关系

目录

启动容器:

实际启动命令: 

dcoker中 contriner 和 images 什么关系

🧱 镜像(Image)是什么?

📦 容器(Container)是什么?

它们的关系总结如下:

图示关系:

查看命令:


启动容器:

docker compose up -d当前项目(需在 docker-compose.yml 所在目录执行)✅ 是启动项目所有服务(生产/开发环境)
docker run -d单个容器(需指定镜像名)✅ 是快速测试某个镜像
docker start <容器名>单个已存在的容器✅ 是重启之前停止的容器

实际启动命令: 

// 使用GPU启动方式 
// --gpus all 使用宿主机所有gpu加载到容器中 
// -shm-size=800g 设置共享内存 如果大量使用 
// --net=host 参数使容器共享宿主机的网络命名空间。这意味着容器将不会获得自己的IP地址,而是使用宿主机的网络堆栈。 
// --ipc=host 参数使容器共享宿主机的进程间通信(IPC)命名空间。这允许容器内的进程和宿主机上的进程共享IPC资源。 
// -v 参数挂载一个卷。这里将宿主机的 /mnt/pfs 目录挂载到容器的 /mnt/pfs 目录,使得容器可以访问宿主机上的文件。 
// -i 参数保持容器的标准输入(STDIN)打开,即使没有附加到容器终端。 
// -t 参数分配一个伪终端。这两个参数通常一起使用,以便你可以交互式地使用容器 docker run --gpus all --shm-size=800g --net=host --ipc=host --name [容器名称] -v /mnt/pfs:/mnt/pfs -v /shared_disk:/shared_disk -it [镜像地址] /bin/bash

docker ps # 查看运行中的容器

docker compose ps # 查看当前项目的容器状态

docker compose down停止并移除所有容器、网络(不会删除数据卷
docker compose restart重启容器(保持配置不变)
docker compose logs -f实时查看容器日志(调试用)
docker compose pull更新镜像(需配合 up -d 重新启动)

dcoker中 contriner 和 images 什么关系

images 是制度模板,

在 Docker 中,container(容器)和 image(镜像)是两个核心概念,它们之间的关系可以类比为“类与实例”的关系:


🧱 镜像(Image)是什么?

  • 是一个只读模板,包含了运行某个软件所需的所有内容:

    • 应用程序代码

    • 系统工具

    • 系统库

    • 依赖项

  • 镜像就像一个快照或“蓝图”,是创建容器的基础。

示例:

 

bash

复制编辑

docker pull python:3.10

这条命令会下载一个包含 Python 3.10 的镜像。


📦 容器(Container)是什么?

  • 是镜像运行后的实例,是一个真正“活着”的进程。

  • 容器是隔离的运行环境,它从镜像启动,并在其上运行应用。

  • 容器可以读写(虽然镜像本身是只读的)。

示例:

 

bash

复制编辑

docker run -it python:3.10

这条命令会:

  1. python:3.10 镜像启动一个容器;

  2. 给你一个交互式终端进入容器内部。


它们的关系总结如下:

概念类比说明
Image类 / 模板只读的运行环境模板,用来创建容器
Container实例 / 进程镜像的运行时实例,是具体在执行的程序
镜像可以启动多个容器类似于一个类可以创建多个对象


图示关系:

 

less

复制编辑

[Image: python:3.10] | ----------------- | | | [Container] [Container] [Container] (运行) (运行) (运行)


查看命令:

  • 查看所有镜像:

     

    bash

    复制编辑

    docker images

  • 查看所有容器(包括停止的):

     

    bash

    复制编辑

    docker ps -a

  • 只看正在运行的容器:

     

    bash

    复制编辑

    docker ps

http://www.lryc.cn/news/591703.html

相关文章:

  • Redis学习系列之—— JDHotKey 热点缓存探测系统
  • maven本地仓库清缓存py脚本
  • 嵌入式学习-PyTorch(6)-day23
  • ZYNQ UltraScale+ MPSoC芯片 pcie switch级联ssd高速存储方案
  • Zabbix 分布式监控系统架构设计与优化
  • C++拷贝构造
  • 嵌入式学习-PyTorch(7)-day23
  • 突破限制:使用 Claude Code Proxy 让 Claude Code 自由连接任意模型
  • 【分治思想解题框架】【分解、求解、合并】
  • 如何在KL散度的意义下解释极大似然估计(二)
  • Kiro vs Cursor: AI IDE 终极对比指南
  • Redis7 底层数据结构解析
  • 数据呈现高阶技巧:散点图与桑基图的独特价值
  • 在CentOS7.9服务器上安装.NET 8.0 SDK
  • .Net将控制台的输出信息存入到日志文件按分钟生成日志文件
  • 编译原理第六到七章(知识点学习/期末复习/笔试/面试)
  • Docker-Beta?ollama的完美替代品
  • 如何将 ONLYOFFICE 文档集成到使用 Laravel 框架编写的 PHP 网络应用程序中
  • NO.7数据结构树|线索二叉树|树森林二叉树转化|树森林遍历|并查集|二叉排序树|平衡二叉树|哈夫曼树|哈夫曼编码
  • vue3 自定义vant-calendar header/footer/maincontent
  • Java数组中相关查找排序算法(1)
  • 力扣 hot100 Day47
  • 网络安全威胁下的企业困境与破局技术实践
  • Linux内核内存管理相关的配置参数
  • 电商行业如何做好网络安全工作?
  • 【web安全】DVWA反射型XSS漏洞分析与利用
  • RGBA图片格式转换为RGB格式(解决convert转换的失真问题)
  • 利用node.js在本地搭建简易http服务器
  • 快慢指针的应用
  • RCU机制及常见锁的理解