docker小白第三天

docker小白第三天

docker为什么会比虚拟机快

1、docker有着比虚拟机更少的抽象层。不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源,因此在CPU、内存利用率上docker将会在效率上有明显优势。
2、docker利用的是宿主机的内核、不需要重新加载操作系统内核OS。当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等,比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。
在这里插入图片描述

帮助启动类命令

启动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

镜像命令

docker images 列出本地主机上的镜像
docker search 某个xxx镜像名字
docker pull 某个xxx镜像名字
docker system df 查看镜像/容器/数据卷所占的空间docker rmi 某个xxx镜像名字ID 

docker images如下图所示,列出本机上的镜像
在这里插入图片描述
docker search redis,在docker远程仓库中搜索镜像名字如下图:
在这里插入图片描述

docker search --limit 5 redis
--limit:只列出N个镜像,默认25个
docker pull redis [:TAG] 下载指定TAG(版本号)的redis镜像
docker pull redis 默认下载最新的镜像
docker system df  查看空间

在这里插入图片描述

docker rmi hello-world 
docker rmi [IMAGE ID]
两者均可删除镜像,第二种是通过指定唯一值的IMAGE ID 来进行删除。删除前需要先停止该镜像在容器中的使用。否则会出警告。
或者使用如下命令,强制删除
docker rmi -f [IMAGE ID]

在这里插入图片描述

docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除多个镜像
docker rmi -f $(docker images -qa)
删除全部镜像

docker虚悬镜像是什么?

docker images执行后,在本地镜像列表显示仓库名、标签都是的镜像,俗称虚悬镜像dangling image。
在这里插入图片描述

容器说明

有镜像才能创建容器,这是一个根本的前提。docker是运行在linux类型资源上。例如在一个linux物理机器上,先docker pull ubuntu,下载一个最新的ubuntu镜像。
在这里插入图片描述

容器命令

下载ubuntu镜像后,就是进行容器的操作。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

在这里插入图片描述

docker run -it ubuntu /bin/bash
-i 是代表交互式操作
-t 是代表终端
/bin/bash  是因为我们希望有个交互式的shell显示。
exit 在交互式的shell中输入该命令,是退出容器,关闭容器,并不能使得容器在后台运行,因为是交互式容器。
ctrl+p+q 同样是退出,则容器不停止

使用最新的镜像ubuntu以交互模式启动一个容器,在容器内执行/bin/bash命令。
在这里插入图片描述
保持容器ubuntu的存在,然后新建一个shell,连接到该机器,执行以下命令。则能看到当前在运行状态的容器。因为启动容器时并没有指定名字,所以看到NAMES字段下的名字是随机生成的。

docker ps 

在这里插入图片描述

指定容器名字后运行
docker run -it --name=test ubuntu /bin/bash
在容器外的命令行界面查看容器运行状态
docker ps

这里可以看到容器的名字变为了规定好的test,形象的表示就是一头鲸鱼身上背了两个集装箱。
在这里插入图片描述

docker ps --help
命令帮助说明
docker ps -a
历史启动过的容器和当前正在运行的容器
docker ps -l
显示最近创建的容器
docker ps -n [数字]
显示最近N个创建的容器

在这里插入图片描述

docker start 容器id或容器名
启动已经停止运行的容器
docker restart 容器ID或容器名
重启容器
docker stop 容器id或容器名
停止容器
docker kill 容器id或容器名
强制停止容器
docker rm 容器id
删除容器
docker rm -f 容器id
强制删除容器
docker ps -aq
显示所有容器的id
启动守护式容器,即后台可保持运行的容器
docker run -d 容器名

需要注意的点是,以后台进程形式启动容器后,记得docker ps -a查看下。有时会出现以下情况。redis默认会有前台运行进程,所以使用-d启动,后台进程不会自杀。
在这里插入图片描述

docker logs 容器id
查看容器日志

在这里插入图片描述

docker top 容器id
查看容器内运行的进程

在这里插入图片描述

docker inspect 容器id
查看容器内部细节

在这里插入图片描述

docker exec -it 容器id /bin/bash
以交互式重新进入容器,即在容器中打开新的终端,用exit退出时不会导致容器的停止
docker attach 容器id
重新进入容器,在使用exit退出后,会杀死容器
docker cp 容器id:容器内路径 目的主机路径

将容器内的文件filetest.txt拷贝到了主机上root目录内
在这里插入图片描述

docker export 容器ID>文件名.tar
导出容器的内容留作一个tar归档文件
cat 文件名.tar|docker import - 镜像用户/镜像名:镜像版本号
从tar包中的内容创建一个新的文件系统在导入为镜像

在这里插入图片描述
将前一步导出的包在导进去,重名了一个新镜像
在这里插入图片描述
然后在新建一个容器,该容器就跟刚刚导出的容器是一样的
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Vray批量云渲染怎么设置?Vray批量云渲染教程

V-Ray,作为业界知名的渲染引擎,其内置的Batch Render(批处理渲染)功能让艺术家和设计者们能够高效率地处理多场景或多视角的渲染任务。通过这一功能,用户可以设置一系列渲染队列,无需监督即可自动完成整个渲…

【期末向】“我也曾霸榜各类NLP任务”-bert详解

预训练语言模型 预训练语言模型于 2015 年被首次提出(Dai & Le,2015)。首先我们要了解一下什么是预训练模型,举个例子,假设我们有大量的维基百科数据,那么我们可以用这部分巨大的数据来训练一个泛化能力很强的模型…

C语言编程经典100例——21至30例

目录 第 21 例 第 22 例 第 23 例 第 24 例 第 25 例 第 26 例 第 27 例 第 28 例 第 29 例 第 30 例 第 21 例 程序源码: /* 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾&#xf…

渗透测试框架——Cobalt Strike

渗透测试框架——Cobalt Strike Cobalt Strike是一款非常成熟的渗透测试框架。Cobalt Strike在3.0版本之前是基于Metasploit框架工作的,可以使用Metasploit的漏洞库。从3.0版本开始,Cobalt Strike不再使用Metasploit的漏洞库,成为一个独立的…

JavaEE:多线程(1):线程是啥?怎么创建和操作?

进程的问题 本质上来说,进程可以解决并发编程的问题 但是有些情况下进程表现不尽如人意 1. 如果请求很多,需要频繁的创建和销毁进程的时候,此时使用多进程编程,系统开销就会很大 2. 一个进程刚刚启动的时候,需要把…

自动化测试Selenium node 配置

查看自己chrome浏览器的版本 下载chromedriver对应版本,下载当前版本中最大版本。 https://npm.taobao.org/mirrors/chromedriver 安装java jdk ,版本至少1.7, 并配置jdk环境变量 以下2个文件放在同一个目录下 Cmd地址切换到第四点目录下,然…

Android开发的技术与开发流程

目录 引言 1. Android开发环境搭建 1. 安装Java Development Kit(JDK) 2. 安装Android Studio 3. 配置虚拟设备(可选) 4. 创建你的第一个Android项目 5. 连接实体设备(可选) 2. Android基础知识 1…

影响云渲染质量的几大要素是什么?影响云渲染质量的主要原因有?

对于3D渲染从业者而言,实现高效和高质量的渲染是一个常见的挑战。由于三维场景的复杂性,相关计算和处理通常需要大量的计算能力和存储,尤其是当面对着高分辨率图像、详细的动画或全局光照效果等要求时,渲染时间往往会大幅增加。针…

了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。(第三天)

有什么不懂可以去看我前两天的笔记 https://blog.csdn.net/weixin_70007095/article/details/134905674 目录 有什么不懂可以去看我前两天的笔记 JavaScript 进阶 - 第3天笔记 编程思想 面向过程 面向对象 构造函数 原型对象 constructor 属性 对象原型 原型继承 原型链 JavaSc…

HarmonyOS学习 第2节 DevEco Studio工程介绍

工程配置页 界面布局介绍 代码编辑区、通知栏、工程目录区、预览区 工程目录区 便于理解,可以切换为 Ohos AppScope主要用于存放整个应用公共的信息与资源 entry默认的初始模块ets文件用于存放编写的代码文件configuration存放相应模块的配置文件resources对应模块…

leetcode 1466

leetcode 1466 使用dfs 遍历图结构 如图 node 4 -> node 0 -> node 1 因为节点数是n, 边长数量是n-1。所以如果是从0出发的路线,都需要修改,反之,如果是通向0的节点,例如节点4,则把节点4当作父节点的节点&…

保障网络安全:了解威胁检测和风险评分的重要性

在当今数字时代,网络安全问题变得愈发突出,而及时发现和迅速应对潜在威胁成为保障组织信息安全的首要任务。令人震惊的是,根据2023年的数据,平均而言,检测到一次网络入侵的时间竟然长达207天。这引起了对安全策略和技术…

威睿三合一电驱动系统斩获“2023汽车新供应链百强-金辑奖”

10月19日,2023第五届“金辑奖”颁奖盛典在上海圆满落幕。威睿公司“高效低噪碳化硅电驱动系统”在动力总成电气化领域脱颖而出,荣获“2023中国汽车新供应链百强”荣誉称号。 “金辑奖”由盖世发起,旨在“发现好公司推广好技术成就汽车人”&a…

利用机器学习实现客户细分:提升市场营销效果的技术策略

客户细分是一项关键的市场营销策略,可以帮助企业更好地了解其目标受众,个性化定制产品和服务,提高市场营销效果。本文将介绍如何利用机器学习算法实现客户细分,包括数据准备、特征工程、算法选择、模型训练和评估等关键步骤。通过…

一文5000字从0到1构建高效的接口自动化测试框架思路

在选择接口测试自动化框架时,需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说,使用Python相关的测试框架更为便捷。无论选择哪种框架,重要的是确保 框架功能完备,易于维护和扩展,提高测试效率和准确性。…

雪花算法详细讲解

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

36、什么是池化算法

池化算法也是 CNN 网络中非常常见的算法。 池化这一算法理解起来比较简单,从名字中或许可以看到一些东西:从一个像素池子中选取一些有代表性的像素出来。 常见的池化有最大池化和平均池化。最大池化就是从像素池子中选取最大值出来,而平均池化就是从像素池子中选取平均值出…

MySQL8.0默认配置详解--持续更新中

binlog日志的默认保留数量和大小 在MySQL 8.0中,您可以使用以下SQL命令来查询binlog日志的默认保留数量和大小: SHOW VARIABLES LIKE binlog_expire_logs_seconds; SHOW VARIABLES LIKE max_binlog_size;binlog_expire_logs_seconds 变量表示binlog日志…

Linux---mkdir和rm命令选项

1. mkdir命令选项 命令选项说明-p创建所依赖的文件夹 mkdir命令选项效果图: 2. rm命令选项 命令选项说明-i交互式提示-r递归删除目录及其内容-f强制删除,忽略不存在的文件,无需提示-d删除空目录 rm -i命令选项效果图: rm -r命令选项效果图: rm -f命…

【c】数组元素移动

本题的难点之处就是不让你创建新的数组&#xff0c;而且移动的距离也没有给限制&#xff0c;比如有7个数&#xff0c;本题没有限制必须移动距离小于7&#xff0c;也可能移动的距离大于7&#xff0c;甚至更多&#xff0c;下面附上我的代码 #include<stdio.h>int main() {…