Docker学习笔记(一):Docker命令总结

Docker命令总结

    • 一、Docker介绍
      • 1.1 镜像与容器区别
    • 二、Docker命令

一、Docker介绍

Docker是一个开源的应用容器引擎,它允许开发者在几乎任何环境中运行应用程序,而无需担心运行环境的问题。Docker的核心概念是容器,它可以将应用程序及其依赖项打包在一起,形成一个独立的环境。这使得开发者可以在不同的机器上复制相同的运行环境,从而实现应用程序的快速部署和迁移。

Docker的主要优点包括:

  • 轻量级:Docker容器比虚拟机更轻量,因为它们共享宿主机的操作系统内核。这使得Docker容器启动速度更快,占用资源更少。
  • 可移植性:由于Docker容器包含了应用程序的所有依赖项,因此可以在任何支持Docker的环境中运行,无论是在物理机、虚拟机还是在云端。
  • 易于管理:Docker提供了强大的镜像管理功能,可以轻松地创建、删除和共享容器镜像。此外,Docker还支持自动化构建和部署,大大提高了开发效率。
  • 安全性:Docker容器之间的隔离性较好,可以有效防止应用程序之间的冲突和干扰。此外,Docker还提供了许多安全特性,如命名空间、cgroups和AppArmor,可以帮助保护容器内的应用程序。
  • 开源:Docker是一个开源项目,拥有庞大的社区和丰富的资源,包括文档、教程和插件。这使得Docker非常灵活,可以根据需求进行定制和扩展。

1.1 镜像与容器区别

镜像(Image)和容器(Container)是Docker技术中的两个核心概念,它们之间的关系类似于传统计算机中的操作系统和应用程序。

  • 镜像(Image):镜像可以看作是一个只读的模板,它包含了创建容器所需的全部内容和元数据。镜像本身并不运行任何程序,而是用来创建容器。一个镜像可以创建多个容器,这些容器之间相互独立。
  • 容器(Container):容器是从镜像创建的运行实例,它包含了运行中的应用程序及其所需的依赖项和环境变量。容器是轻量级的,因为它共享了宿主操作系统的内核,这使得容器启动速度非常快,且占用资源较少。

简单来说,镜像定义了容器的行为和属性,而容器则是镜像的运行实例。

二、Docker命令

  1. 构建镜像

    sudo docker build -f ./ultralytics-main/docker/Dockerfile -t yolov8:v0 .
    
  2. 查看容器

    docker imagee
    
  3. 查看正在运行的容器ID(所有运行过的容器)

    docker ps -a
    
  4. 安装ssh服务/根据运行的容器,直接进入:

    docker exec -t -i ubuntu /bin/bash
    
  5. 运行容器

    """
    命令解释 (-d 一直运行;-i 交互式操作; -t 终端;-v 挂载路径  “/home/zzy_ubuntu/share”表示主机路径 “/usr/share/files1”表示docker路径;--gpus表示使用gpu ;“fa50f7fed43a ” 表示容器ID)
    """
    # 一直运行容器,exit不会退出(再次进入需要使用docker exec)
    sudo docker run -dit --gpus all fa50f7fed43a /bin/bash
    # 使用GPU
    sudo docker run -it  --gpus all fa50f7fed43a /bin/bash
    # 使用CPU
    sudo docker run -t -i 容器id /bin/bash
    # 运行时挂载  {yolov8:base} 是容器id的tag
    #### ubuntu挂载
    sudo docker run -dit --gpus all -v /home/zzy_ubuntu/share:/workspace/share yolov8:1.0 /bin/bash
    #### windows挂载
    sudo docker run -dit --gpus all -v /mnt/f/python/company_code/Algorithm_architecture/yolov8:/workspace/share yolov8:1.0 /bin/bash
    
  6. 停止运行容器

    sudo docker stop <容器ID>
    
  7. 删除容器

    ############################################## 删除容器
    sudo docker rm <容器ID前三位> 
    ############################################## 删除镜像
    docker rmi -f 镜像id # 删单个
    docker rmi -f 镜像id 镜像id # 删多个
    docker rmi -f $(docker images -aq) # 删除所有
    
  8. 进入容器终端

    docker exec -it 容器ID  /bin/bash  # 此方法需要先通过docker run -dit后台启动
    
  9. 保存新镜像(打包tar)

    # 使用save参数进行打包,格式如:docker save -o tar文件名称 镜像REPOSITORY:TAG
    docker   commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]
    ---docker commit -m="最新的yolov8环境-无tensorrt" -a="zhaozhiyuan" 2b22 yolov8:cuda11.6.2-cudnn8302-py38
    docker save -o yolov5-v6.2.tar yolov5:v6.2 ---- 将镜像保存为.tar文件,默认保存在当前目录
    # sudo docker save <镜像ID> -o /home/yolov8_v0.tar
    # 其中yolov5:v6.2 是需要保存镜像的REPOSITORY、和TAG;也是上面保存的镜像名称。
    
  10. 给镜像打标签和删除标签

    # 打标签
    sudo docker tag aba01f181a4a webconsole:latest
    
  11. 容器导出

    sudo docker export -o xxx.tar <容器id>
    
  12. 加载tar镜像

    # 使用load进行从tar文件导出镜像
    docker load -i yolov5-v6.2.tar
    # 然后查看是否出现镜像
    docker images
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PLC远程上下载功能实现的基本原理

PLC远程上下载功能实现的基本原理 首先&#xff0c;需要一个支持PLC远程上下载的物联网网关&#xff0c;该网关通常具有网口、RS485、232等接口&#xff0c;以连接PLC和其他物联网设备。远程上下载物联网网关是一种用于实现PLC程序远程上传和下载的技术。PLC与物联网网关之间需…

c# entity freamwork 插入批量数据如何提升性能 AutoDetectChangesEnabled

在C#的Entity Framework&#xff08;EF&#xff09;中&#xff0c;AutoDetectChangesEnabled 是一个影响上下文行为的重要属性&#xff0c;它默认设置为 true。这个属性控制着DbContext实例自动检测实体对象 ** 中更改的能力。 当AutoDetectChangesEnabled 设置为 true时&…

2024--Django平台开发-基础信息(一)

一、前置知识点 - Python环境搭建 (Python解释器、Pycharm、环境变量等) - 基础语法(条件、循环、输入输出、编码等) - 数据类型(整型、布尔型、字符串、列表、字典、元组、集合等) - 函数(文件操作、返回值、参数、作用域等) - 面向对象 (类、对象、封装、继承、多态等)包和模…

Jtti:为什么建议企业使用存储型服务器?

随着企业业务的不断发展&#xff0c;数据存储已成为企业运营中不可或缺的一部分。存储服务器作为数据存储的重要设备之一&#xff0c;在企业中发挥着越来越重要的作用。本文将探讨企业为什么需要使用存储服务器&#xff0c;以及存储服务器对于企业的重要性。 可以满足企业不断增…

【动态规划】C++算法312 戳气球

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 动态规划 LeetCode312 戳气球 有 n 个气球&#xff0c;编号为0 到 n - 1&#xff0c;每个气球上都标有一个数字&#xff0c;这些数字存在数组 nums 中。 现在要求你戳破所有的气球。戳破第 i 个气球&…

Simpy简介:python仿真模拟库-01/5

一、说明 在计算机编程领域&#xff0c;仿真在理解复杂系统、进行实验和做出明智决策方面发挥着关键作用。SimPy 是“Simulation Python”的缩写&#xff0c;是一个功能强大且多功能的仿真框架&#xff0c;允许开发人员和研究人员使用 Python 创建和分析离散事件仿真。无论您是…

视频如何制作微信表情?仅需一招在线制作

Gif动画表情包是当下一种非常流行的图片展示格式&#xff0c;能够通过gif格式的图片来调节聊天氛围或是传递信息&#xff0c;非常有趣。而gif动图现在也被各行各业的商家用作宣传使用&#xff0c;很吸引大众的目光。 那么&#xff0c;这种非常吸引人的gif动图是怎么制作的呢&a…

Power BI - 5分钟学习修改数据类型

每天5分钟&#xff0c;今天介绍Power BI修改数据类型 Power BI加载数据时&#xff0c;会尝试将源列的数据类型转换为更高效的存储、计算和数据可视化的数据类型。 例如&#xff0c;如果从Excel导入的值的列没有小数值&#xff0c;Power BI Desktop会将整个数据列转换为整数数据…

信息学奥赛一本通1268:【例9.12】完全背包问题代码+详解

题目链接&#xff1a;1268 题目 1268&#xff1a;【例9.12】完全背包问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 40600 通过数: 21799 【题目描述】 设有n&#xfffd;种物品&#xff0c;每种物品有一个重量及一个价值。但每种物品的数量是无限的&…

Spanner on a modern columnar storage engine 中文翻译

文章目录 0. 摘要1. 存储引擎2. 存储引擎迁移的挑战2.1 可靠性、可用性和数据完整性2.2 性能和成本2.3 复杂性 3. 迁移可靠性的系统原则方法3.1 可靠性原则和自动化架构3.2 迁移方案和按周迁移3.3 客户 部署感知 调度3.4 管理可靠性、可用性和性能 4. 项目管理和驱动指标概括 0…

基于领域驱动设计的低代码平台的设计与实现

本文介绍了基于领域驱动设计&#xff08;DDD&#xff09;的低代码平台的设计与实现方法。低代码平台是一种能够通过图形化界面和少量编码&#xff0c;快速构建应用程序的工具。通过结合DDD的思想&#xff0c;我们可以将领域专家的知识转化为具体的领域模型&#xff0c;并将其作…

网络层协议及IP编址

0x00 前言 本节为网络层协议及IP编址内容 IP地址的范围&#xff1a;0.0.0.0-255.255.255.255 IP分为网络位以及主机位。子网划分就是向主机位借位。 网络层协议 IPICMP&#xff08;internet Control message protocol&#xff09;IPX IP协议的作用 为网络层的设备提供逻…

手把手教你新建一个winform项目(史上最全)

文章目录 前言&#xff1a;第1步、打开Microsoft Visual Studio&#xff08;简称vs&#xff09;&#xff0c;本人这里使用的是Visual Studio 2017 专业版&#xff0c;如下图&#xff1a;1.2 Visual Studio Community 2019下载1.3 Visual Studio Community 2019 安装 第2步、点击…

2024年【A特种设备相关管理(锅炉压力容器压力管道)】报名考试及A特种设备相关管理(锅炉压力容器压力管道)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;报名考试是安全生产模拟考试一点通总题库中生成的一套A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;模拟考试题库&#xff0c;安全…

nodejs版本管理工具nvm的安装与使用

提示&#xff1a;nodejs版本管理工具nvm的安装与使用 文章目录 前言一、安装二、淘宝镜像配置三、安装所需版本的nodejs四、切换nodejs版本五、参考文档总结 前言 需求&#xff1a;新建一个vue3项目&#xff0c;&#xff0c;提示写法错误 查原因为node版本过低 随着技术更新迭…

Python Asyncio网络编程方法全面解析与实战应用!

更多Python学习内容&#xff1a;ipengtao.com Python的asyncio库是一种强大的异步编程工具&#xff0c;它使得编写高效的网络应用程序变得更加容易。在本文中&#xff0c;我们将深入探讨使用asyncio进行网络编程的方法&#xff0c;包括异步IO、协程、事件循环等方面的内容&…

华为认证 | HCIP和HCIE难度差多了?

许多有志于在ICT领域发展的人士&#xff0c;都希望获得华为的HCIP或HCIE认证。 那么&#xff0c;考取这些认证到底需要多少钱&#xff1f;HCIP和HCIE的难度又存在怎样的差异&#xff1f;下面将为您揭晓答案。 01 考华为HCIE多少钱&#xff1f; ★ 考试费用 华为HCIE认证考试的…

22. Mysql 触发器

文章目录 概念常见操作查看触发器创建触发器删除触发器 精选示例数据完整性约束数据同步日志记录 总结参考资料 概念 触发器&#xff08;Trigger&#xff09;是 Mysql 数据库中的一种特殊的存储过程&#xff0c;它会在数据库中的指定表上自动执行某些操作。当满足触发器定义的…

Python编程+copilot+代码补全+提高效率

Python编程copilot代码补全提高效率 copilot是由Github和OpenAI合作开发的一款AI编程工具&#xff0c;它可以根据自然语言或部分代码&#xff0c;自动给出合适的代码补全建议。copilot支持多种编程语言&#xff0c;包括Python&#xff0c;也可以在Pycharm等主流IDE中使用。本资…

正则表达式速查手册

正则表达式 1、正则表达式简介2、常用正则表达式速查手册 1、正则表达式简介 正则表达式是一种强大的文本匹配工具&#xff0c;可以用于在文本中查找特定的模式 正则表达式由不同类型的字符组成&#xff0c;包括普通字符、元字符、分隔符和转义字符等。其中&#xff1a; 普通字…