Docker 学习 Day 2

docker 基本命令和操作

  • 学习视频
  • 一、docker 常用命令
    • 1、帮助启动类命令
    • 2、镜像命令
      • 2.1、docker images
      • 2.2、docker search 某个 xxx 镜像的名字
      • 2.3、docker pull 某个 xxx 镜像的名字
      • 2.4、docker system df
      • 2.5、docker rmi 某个 xxx 镜像的名字 ID
      • 2.6、面试题:谈谈 docker 虚悬镜像是什么?
    • 3、容器命令
      • 3.1、新建 + 启动容器
        • ==启动交互式容器==
      • 3.2、列出当前所有**正在运行**的容器
      • 3.3、退出容器
      • 3.4、启动已停止运行的容器
      • 3.5、重启容器
      • 3.6、停止容器
      • ==3.7、重要==
        • 3.7.1 启动守护式容器(后台服务器)
        • 3.7.2 查看容器日志
        • 3.7.3 查看容器内运行的进程
        • 3.7.4 查看容器内部细节
        • 3.7.5 ==进入正在运行的容器并以命令行交互==
        • 3.7.6 从容器内拷贝文件到主机上
        • 3.7.7 导入和导出容器
    • 4、小总结
  • 二、Docker 镜像分层的概念
  • 三、commit 命令
        • 1、从 Hub 上下载 ubuntu 镜像到本地并成功运行
        • 2、原始的默认ubuntu镜像是不带 vim 命令的
        • 3、外网连通的情况下,安装 vim
        • 4、安装完成后,commit 我们自己的新镜像
        • 5、启动我们的新镜像并和原来的对比
      • 总结
  • 四、本地镜像发布到阿里云
        • 1、阿里云开发者平台 -> 控制台 -> 镜像容器服务
        • 2、选择个人实例
        • 3、将本地镜像推送到阿里云(使用上图的脚本命令)
          • 3.1.、登录阿里云Docker Registry
          • 3.2、 将镜像推送到Registry
        • 4、将阿里云上的镜像下载到本地使用
          • 4.1.、登录阿里云Docker Registry
          • 4.2、 从Registry中拉取镜像

学习视频

尚硅谷Docker实战教程(docker教程天花板)

一、docker 常用命令

1、帮助启动类命令

启动 docker:systemctl start docker

停止 docker:systemctl stop docker

重启 docker:systemctl restart docker

查看 docker 状态:systemctl status docker

开机启动:systemctl enable docker

查看 docker 概要信息:docker info

查看 docker 总体帮助文档:docker --help

查看 docker 命令帮助文档:docker 具体命令 --help

2、镜像命令

2.1、docker images

作用:列出本地主机上的镜像

image-20240909135409001

image-20240909135158879

image-20240909135458765

image-20240909135231303

2.2、docker search 某个 xxx 镜像的名字

作用:在远程仓库中查找 镜像

image-20240909140130968

image-20240909140217654

image-20240909140403569

2.3、docker pull 某个 xxx 镜像的名字

作用:下载镜像

image-20240909140607972

image-20240909140813412

2.4、docker system df

作用: 查看镜像 / 容器 / 数据卷所占的空间

image-20240909141310355

2.5、docker rmi 某个 xxx 镜像的名字 ID

作用:删除镜像 ,i 为 image 及镜像

image-20240909141524999

参数:

-f 强制删除

image-20240909141602852

2.6、面试题:谈谈 docker 虚悬镜像是什么?

image-20240909142016798

image-20240909142027614

建议删除

3、容器命令

docker 必须运行在 Linux 内核上,所以我们先安装 VMware 虚拟机,在里面安装 docker

接下来的操作都在 docker 中运行,但有镜像才能创建容器,所以得在 docker 中安装镜像 ubuntu

image-20240909145525545

3.1、新建 + 启动容器

命令:docker run [options] IMAGE [COMMAND] [ARG…]

image-20240909150135045

image-20240909150659705

启动交互式容器

例如 docker 中要用 ubuntu ,但是 ubuntu 是交互式的,要输入命令什么的(终端)

i :interactive (交互) t:tty (终端)

Ubuntu 还要用 shell 命令交互,所以加 /bin/ba

image-20240909152224854

此时相当于用 docker 去操作另外一套 Linux 系统

image-20240909152342689

要退出终端,直接用命令:exit

3.2、列出当前所有正在运行的容器

命令:docker ps [OPTIONS]

image-20240909152732514

image-20240909153145476

image-20240909153207416

不设置名称就系统随机生成

image-20240909153607519

3.3、退出容器

image-20240909154230367

ctrl +p +q 是指键盘操作

3.4、启动已停止运行的容器

命令:docker start 容器 ID 或者容器名

3.5、重启容器

命令:docker restart 容器 ID 或者容器名

3.6、停止容器

命令:docker stop 容器 ID 或者容器名

强制停止:docker skill 容器 ID 或者容器名

删除已经停止的容器:docker rm 容器 ID

image-20240909155347447

3.7、重要

3.7.1 启动守护式容器(后台服务器)

image-20240909160049790

image-20240909160159772

有一些镜像不能后台运行,它觉得自己没事可做就会自杀(如run -d Ubuntu 它交互不了,没有人能输入命令,它就自杀了)

redis 前台交互式启动

命令:docker run -it redis:6.0.8

image-20240909160753685

此时,若关闭窗口。redis 就结束了 (如按了ctrl + c,redis 就没了)

redis 后台交互式启动

命令:docker run -d redis:6.0.8

image-20240909161036072

3.7.2 查看容器日志

命令:docker logs 容器 ID

image-20240909161403718

3.7.3 查看容器内运行的进程

命令:docker top 容器ID

image-20240909162124836

3.7.4 查看容器内部细节

命令:docker inspect 容器ID

image-20240909162318603

3.7.5 进入正在运行的容器并以命令行交互

命令1:docker exec -it 容器ID bashShell

image-20240909162846953

命令2:docker attach 容器ID

image-20240909163128634

推荐用 exec

3.7.6 从容器内拷贝文件到主机上

命令: docker cp 容器ID:容器内路径 目的主机路径

作用:1、容器内容备份,容器可能会被删除

image-20240909164416062

3.7.7 导入和导出容器

image-20240909164537004

直接备份容器

image-20240909164719003

回复容器

image-20240909165056305

4、小总结

image-20240909165151770

image-20240909165339388

image-20240909165408072

image-20240909165440204

image-20240909165450650

二、Docker 镜像分层的概念

image-20240910211031648

镜像是分层的

image-20240910211126404

联合文件系统

image-20240910211251095

Docker 镜像加载原理

image-20240910211604091

重点理解

Docker 镜像层是只读的,容器是可写的

当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”

image-20240910212656829

为什么 docker 镜像要采用这种分层结构呢?

(层层的来,一方便组合,减少不必要的资源浪费。二、精准快速)

image-20240910213050196

三、commit 命令

docker commit 提交容器副本使之成为一个新的镜像

docker commit -m =“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

举例

image-20240910213737903

此容器实例不支持 vim 命令,该怎么添加呢?

1、从 Hub 上下载 ubuntu 镜像到本地并成功运行

docker run -it ubuntu /bin/bash

2、原始的默认ubuntu镜像是不带 vim 命令的
3、外网连通的情况下,安装 vim

先更新:apt-get update

image-20240911144711232

再安装yum:apt-get -y install vim

image-20240911144637005

4、安装完成后,commit 我们自己的新镜像

安装完 vim 后用 ctrl p + q 退出

image-20240911150437749

然后 commit

docker commit -m=“add vim cmd” -a=“wy” e2e62d29fd15 wy/myubuntu:1.1

注意:这个root@e2e6… 是容器id 不是镜像id。要查看的话用 docker ps 命令

image-20240911150942759

再用 docker images 查看容器

image-20240911151034945

相比 原来ubuntu 镜像多了 100m 也就是多了个vim 命令。给千层饼多加了一层,想积木一样可以任意组合

5、启动我们的新镜像并和原来的对比

先把容器停掉

image-20240911151556563

查看原镜像 ubuntu,发现 vim 命令没有。

为什么?因为前面 run 镜像ubuntu 生成的 容器a,后面操作的是这个容器a,容器a确实有了vim命令

后面又run 镜像ubuntu 生成了容器b,容器b 怎么会有vim 命令呢?

image-20240911151740476

直接 run 镜像 myubt 呢?

image-20240911152312107

发现是有 vim 命令的

总结

image-20240911152424327

四、本地镜像发布到阿里云

image-20240911153822652

步骤:

1、阿里云开发者平台 -> 控制台 -> 镜像容器服务

容器镜像服务 (aliyun.com)

2、选择个人实例

没有就创建

image-20240911154622830

创建命名空间

image-20240911154837065

创建镜像仓库 (最后选择本地仓库0

进入管理界面获得脚本

image-20240911155317568

image-20240911155114438

3、将本地镜像推送到阿里云(使用上图的脚本命令)

容器镜像服务 (aliyun.com)

3.1.、登录阿里云Docker Registry

image-20240911155721340

3.2、 将镜像推送到Registry

image-20240911160048077

4、将阿里云上的镜像下载到本地使用
4.1.、登录阿里云Docker Registry

image-20240911155721340

4.2、 从Registry中拉取镜像

先删除本地镜像

image-20240911160921870

image-20240911160854345

拉取镜像

image-20240911161129347

运行试试

image-20240911161238368

运行成功且有 vim 命令

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

谷歌seo网址如何快速被收录?

想让你的网站快速被搜索引擎收录,可以采取几种不同的策略。首先,确保你的网站内容丰富、有价值,搜索引擎更喜欢收录内容质量高的网站。同时,增强网站的外链建设,做好这些站内优化,接下来就是通过谷歌搜索控…

windows下自启springboot项目(jar+nginx)

1、将springboot项目打包为jar 2、新建文本文档 test.txt,并输入 java -jar D:\test\test.jar(修改为自己的jar包位置) 保存 然后修将后缀名改为 .bat 3、在同一目录再新建 文本文档test.txt,输入以下内容,&…

“杏鲍菇驱动机器人创新前行:康奈尔大学最新研究亮相Science子刊“

未来科技新篇章:杏鲍菇操控下的机器人奇旅! 在这个日新月异的科技时代,你或许听说过机器人由AI驱动、由人脑操控,但你是否能想象,一颗看似平凡的杏鲍菇也能成为控制机器人的“大脑”? 没错,这不…

对抗性EM用于变分深度学习:在低剂量PET和低剂量CT中的半监督图像质量增强应用|文献速递--Transformer架构在医学影像分析中的应用

Title 题目 Adversarial EM for variational deep learning: Application to semi-supervised image quality enhancement in low-dose PET and low-dose CT 对抗性EM用于变分深度学习:在低剂量PET和低剂量CT中的半监督图像质量增强应用 01 文献速递介绍 医学影…

新专利:作物生长期预测方法及装置

近日,国家知识产权局正式授权了一项由北京市农林科学院智能装备技术研究中心、江苏省农业科学院联合申请的发明专利"作物生长期预测方法及装置"(专利号:ZL 2024 1 0185298.1)。该专利由 于景鑫 、任妮、吕志远、李友丽、吴茜等发明人耗时多年潜心研发,犹如…

6、关于Medical-Transformer

6、关于Medical-Transformer Axial-Attention原文链接:Axial-attention Medical-Transformer原文链接:Medical-Transformer Medical-Transformer实际上是Axial-Attention在医学领域的运行,只是在这基础上增加了门机制,实际上也就…

Java入门:08.Java中的static关键字01

1 static关键字 可以修饰属性变量,方法和代码段 static修饰的属性称为静态属性或类属性, 在类加载时就在方法区为属性开辟存储空间,无论创建多少个对象,静态属性在内存中只有一份。 可以使用 类名.静态属性 的方式引用 static修饰…

无人机动力系统设计之桨叶推力计算

无人机动力系统设计之桨叶推力计算 1. 源由2. 关键参数2.1 特性参数2.1.1 材质(Material)2.1.2 叶片数量(Number of Blades)2.1.3 重量(Weight)2.1.4 噪音水平(Noise Level) 2.2 安装…

一文为你详解期权波动率是什么?

今天期权懂带你了解一文为你详解期权波动率是什么?采用合适的期权组合来对冲或利用波动率变化带来的机会。不同策略适用于不同的市场条件和投资目标。 期权波动率 假如我们为地震灾害去买一份保险,你认为什么样地震的保险费会更贵呢,是深圳…

备忘录模式memento

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/memento 允许生成对象状态的快照并在以后将其还原。备忘录不会影响它所处理的对象的内部结构, 也不会影响快照中保存的数据。

2024年湖北交安ABC公路安全员C证报考今时不同往日

2024年湖北交安ABC公路安全员C证报考今时不同往日 之前的交安ABC,你爱搭不理,现在的交安ABC,你高攀不起。真的应了这句话。所以建筑行业考证要趁早,别等要求严了你想报却缺东少西的。湖北交安ABC大变天了。 2024年之前报考湖北交…

初识Maven:Java项目管理工具

实际开发中,伴随着项目规模的增长,依赖管理和构建自动化变得至关重要,一套标准化的项目结构有助于更好的开发项目、简化这项任务(真的不是强迫症) Maven,作为 Apache Software Foundation 维护的项目管理工…

【Unity面经】性能优化篇

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧&…

SpringBoot开发——整合Logbook进行HTTP API请求响应日志输出

文章目录 1. 简介依赖管理2. 实战案例2.1 基本用法2.2 结合Logback日志记录到文件2.3 自定义核心类Logbook2.4 自定义日志输出Sink2.5 与RestTemplate集成1. 简介 记录HTTP API请求响应日志对于监控、调试和性能优化至关重要。它帮助开发者追踪API的使用情况,包括请求来源、参…

2010-2022年各省乡村振兴新质生产力相关变量数据(40+指标)

2010-2022年各省乡村振兴新质生产力相关变量数据(40指标) 1、时间:2010-2022年 2、来源:统计年鉴、能源统计年鉴、农村统计年鉴、人口和就业统计年鉴、城乡建设统计年鉴以及各省份统计年鉴 3、指标:省份、年份、分地…

洗袜子的小洗衣机哪款好?专洗袜子的微型洗衣机!洗衣机不要乱选

袜子洗衣机大多数都为迷你洗衣机,因为这是解决了用大洗衣机去洗袜子而大材小用的情况,同时袜子清洗的数量比较少(满打满算一周的袜子5双,用迷你洗衣机清洗是绰绰有余的)而现在也很多人为了洗袜子专门买一个迷你洗衣机&…

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内…

【Hadoop|MapReduce篇】MapReduce概述

1. MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2. Map…

丹尼尔·T·琼斯:为什么精益管理是卓越的商业模式?

作者:丹尼尔T琼斯 原文:Why Lean Remains a Superior Business Model and Way of Thinking - Lean Enterprise Institute 精益商业模式提供了一种不同于传统思维的选择,帮助企业在满足客户需求方面超越竞争对手,从而获得竞争优势…

安卓玩机工具-----ADB方式的刷机玩机工具“秋之盒”’ 测试各项功能预览

秋之盒 安卓玩机工具-秋之盒是一款ADB刷机工具箱,基于谷歌ADB的一款绿色安装,具备了海量扩展模块,支持ADB刷机救砖、一键激活黑域、adb指令修复等功能,是一款开源、免费、易用的手机刷机工具! 并且是一款开源、免费、易用的图形化…