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

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.lryc.cn/news/259975.html

相关文章:

  • FFmpegd的AVBSF
  • 深圳三男子写字楼内吸烟被罚,快用富维AI神器,实时监控防火灾
  • 有哪些已经上线的vue商城项目?
  • Nginx服务器配置SSL证书
  • 【JVM从入门到实战】(六)类加载器的双亲委派机制
  • SpringCloud面试题及答案(最新50道大厂版,持续更新)
  • Next.js 的设计理念
  • 26、文件包含
  • 飞天使-linux操作的一些技巧与知识点4-ansible常用的技巧,配置等
  • Stable Diffusion 源码解析(1)
  • java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter 报错解决
  • Python学习笔记-类
  • 了解如何在linux使用podman管理容器
  • SQL命令---修改字段的数据类型
  • 一键提取微信聊天记录,生成HTML、Word文档永久保存,还能生成微信年度聊天报告
  • docker使用详解
  • MidJourney笔记(7)-Seeds
  • pom配置文件重要标签探究
  • 如何在Ubuntu的Linux系统上搭建nacos集群
  • oracle中的PIVOT函数
  • 【经验分享】gemini-pro和gemini-pro-vision使用体验
  • JS冒泡排序
  • 面向遥感图像的道路区域提取及优化
  • mysql中NULL值
  • [c++] 意识需要转变的一个例子,全局变量的构造函数先于main执行
  • VSCode 配置自动生成头文件
  • 【大数据】Hudi 核心知识点详解(一)
  • windows上抓包出现大包未分片以及关闭tso方法
  • Leetcode 2454. 下一个更大元素 IV
  • 浏览器全屏按键同f11效果