• Docker基础知识简介


    1. 引言

    上学的时候就常常听到大神在讨论Docker,当时觉得这是个很高级的工具,但工作后才真正意义上认真进行了研究,使用后一直有相见恨晚的感觉。

    本篇希望可以将Docker的好处以及实用的指令整理下来,让有听过没用过但有兴趣想了解的朋友,有机会使用到这个好工具。

    2. 镜像与容器

    我个人一直将镜像档和容器的关系比喻为PPT中的模板以及一份具体的PPT材料。如下所示:
    在这里插入图片描述
    镜像(Image)可以视为一个只读的模板,基于这个模板我们可以建立不同的容器(Container)。在镜像中,可以包含一个完整的操作系统环境,可根据使用者的需求不同而带有不同的环境。在我们的本地的镜像可以当做我们拥有的开发环境模板,基于这些模板,我们可以根据任务的需求不同去开启适合的容器来执行相应的任务。

    类比PPT中的例子,当某人做出了一个PPT模板时,希望可以分享出去让其他人使用,只需要将这个模板放到网络上,供其他人下载即可。拿到这个模板的人也可以大量的去制作投影片,去完成需要完成的任务。在docker中镜像与容器就像是这样的关系。

    3. 下载镜像

    在介绍完镜像和容器的关系后,我们使用以下命令来下载镜像到本地,如下:

    sudo docker pull [Image Name]
    
    • 1

    例如:

    sudo docker pull nvcr.io/nvidia/pytorch:22.04-py3
    
    • 1

    我们也可以使用以下的指令来知道目前比较热门的镜像,其中[Search Name]可以改成感兴趣的关键字。

    sudo docker search [Search Name]
    
    • 1

    举例如下:
    在这里插入图片描述

    4. 列出所有镜像

    我们可以使用sudo docker images指令,来查看所有的镜像。执行结果如下图所示,
    在这里插入图片描述

    可以看到字段包含:

    • REPOSITORY:代表这个镜像档来自哪个仓库
    • TAG:镜像的标记信息
    • IMAGE ID:镜像的唯一id值
    • CREATED:建立时间
    • VIRTUAL SIZE:镜像的大小

    5. 删除镜像

    可以使用以下指令来删除镜像,[Image Name]为需删除镜像的名字。

    sudo docker rmi [Image Name]

    6. 建立并执行容器

    run这个指令有很多参数可以设定。可参考此官方文件

    sudo docker run
    
    • 1

    7. 列出所有的容器

    列出所有的容器的命令如下:

    sudo docker ps -a
    
    • 1

    结果如下:
    在这里插入图片描述

    8. 退出容器

    在容器内我们可以直接输入exit来离开容器,并回到原本的系统。

    9. 进入容器

    我们可以退出容器当然就可以再次进入容器,主有有两种方法可以进入容器,分别是execattach,两条指令中的[Container]为需要输入的容器的名称或是容器的ID。

    sudo docker exec -it [Container] bash
    sudo docker attach [Container]
    
    • 1
    • 2

    而以上这两个指令有什么差别呢?差别就是如果我们使用exit离开容器时,当初用exec进入的容器并不会中止,但是用attach进入的容器,当我们离开容器后,这个容器就会被中止。示例如下:
    在这里插入图片描述
    在这里插入图片描述

    10. 删除容器

    我们也可以通过以下指令来删除不要的容器,[Container]同样是需要输入容器的名称或是容器的ID。

    sudo docker rm [Container]
    
    • 1

    如下所示:
    在这里插入图片描述

    11. 启用与停止容器

    启用与停止的指令也相当简单,分别是:

    sudo docker start [Container]
    sudo docker stop [Container]
    
    • 1
    • 2

    12. 总结

    本文对docker最基础的概念镜像和容器进行了详细的阐述,并对二者最常用的语法命令进行了归纳总结,并给出了相应的示例。

    您学废了嘛?

    在这里插入图片描述

  • 相关阅读:
    Git命令总结
    艾美捷A型CpG DNA, 人/小鼠应用和化学性质说明
    参编三大金融国标,奇富科技以技术促行业规范化演进
    关于 re.sub 部分替换的解决办法
    树的应用 —— 树的简介
    01 INFINI-GATEWAY简介
    【无标题】
    智能合约安全分析,针对 ERC777 任意调用合约 Hook 攻击
    zookeeper客户端的使用和集群特性
    论文笔记:Large Language Models Are Zero-Shot Time Series Forecasters
  • 原文地址:https://blog.csdn.net/sgzqc/article/details/125362585