[每周一更]-(第23期):Docker 逻辑图及常用命令汇总

news2024/9/21 22:34:43

在这里插入图片描述
Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。相较于传统虚拟机,Docker容器提供轻量化的虚拟化方式、安装便捷、启停速度快。

Docker是一个开放源代码的开放平台软件,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。

Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。

什么是容器?
容器是包含在任何环境中运行所需的所有元素的软件包。容器可以虚拟化操作系统,并在任何地方运行,不管目标环境是私有数据中心、公有云,还是开发者的个人笔记本电脑。
容器支持在操作系统级别轻松共享 CPU、内存、存储空间和网络资源,并提供了一种逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境。

容器的使用更多了占据了工作的内容,随着Go语言的兴起,Docker作为容器的最常用的载体,很好的起到隔离,与虚拟机比起来更多的对资源的有效利用;

为什么要用 Docker?
• 更高效地利用系统资源
• 更快速的启动时间
• 一致的运行环境
• 持续交付和部署
• 更轻松地迁移
• 更轻松地维护和扩展

Docker容器 VS VM

Docker容器和传统VM技术,在技术实现上有所不同。下图显示的是VM与Docker容器的逻辑组成:

  • VM:使用Hypervisor提供虚拟机的运行平台,管理每个VM中操作系统的运行。每个VM都要有自己的操作系统、应用程序和必要的依赖文件等。
  • Docker容器:使用Docker引擎进行调度和隔离,提高了资源利用率,在相同硬件能力下可以运行更多的容器实例;每个容器拥有自己的隔离化用户空间。
    在这里插入图片描述

虚拟机与Docker容器对比

相较于VM,Docker容器作为一种轻量级的虚拟化方式,在应用方面具有以下显著优势:

  • Docker容器可以在秒级时间内快速启动和停止,相较传统虚拟机显著提升。
  • Docker容器对系统资源要求低,数千个Docker容器可同时运行在同一个主机上。
  • Docker容器通过类似Git的操作来方便用户获取和更新应用镜像。
  • Docker容器通过Dockerfile配置文件实现自动化创建和灵活部署,提高工作效率。
  • Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,保证应用性能的同时,尽量减小系统开销。
    下图可直观了解Docker容器与传统VM方式的区别:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

常用命令

1.启动docker     /etc/init.d/docker start 
2.搜索镜像     docker search centos
3.启动容器     docker run --name  -h  hostname
4.停止容器     docker stop CONTAINER ID
5.拉取镜像      docker pull  mysql5.6   这里标注的是版本号
6.查看容器中的内容  docker inspect  容器id 
7.运行安装好的镜像跑命令:run centos echo "hello world"

docker stop `docker ps -a -p` 停止所有的容器
docker exec -it 容器名 bash   进入到容器中
docker-php-ext-install 模块名   容器中安装模块

docker images #列出本地主机上的镜像 
docker ps  #列出运行的容器 
docker ps -a #查看所有容器 
docker ps -s #查看容器的大小,可以再原有-a基础上追加
docker search #查找镜像
docker save 镜像名 -o tar包 #镜像打包 
docker load -i 镜像包 #导入docker save的镜像 
docker rm 容器名 #删除容器 
docker rmi 镜像 #删除镜像 
docker search php7 #查找php7镜像 
docker pull php7 #下载php7镜像,可以指定镜像tag
docker start name  # 运行容器中停止的镜像,如name=showdoc

docker attach 容器id # 链接到正在运行的容器,观察该容器的运行情况,或者与容器到的主进程进行交互
docker system df 命令来便捷的查看镜像、容器、数据卷所占用的空间
docker image prune  虚悬镜像删除
docker image ls -f dangling=true 专门显示虚悬镜像(由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none> 的镜像。)
docker image ls -a # 顶层镜像和中间镜像都展示
docker image ls -q # 列出镜像的id

docker top containerId  *# 查看容器内容的进程信息
docker stats  containerId  # 查看统计信息,cpu,内存,存储,网络等; 
-a 查所有信息
--format string 格式化输出

docker port containerId #查看容器的端口映射情况
docker diff containerID #查看容器内文件系统的变更


运行镜像:
docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
	--name nginx-test:容器名称。
	-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
	-d nginx: 设置容器在在后台一直运行。


docker中宿主机与容器(container)互相拷贝传递文件的方法

1、从容器拷贝文件到宿主机
docker cp mycontainer:/opt/testnew/file.txt /opt/test/

2、从宿主机拷贝文件到容器
docker cp /opt/test/file.txt mycontainer:/opt/testnew/

需要注意的是,不管容器有没有启动,拷贝命令都会生效。

容器中删除文件  rm -rf 文件名


清理命令
杀死所有正在运行的容器 docker kill $(docker ps -a -q)
删除所有未打 dangling 标签的镜像 docker rmi $(docker images -q -f dangling=true)
通过镜像的id来删除指定镜像   docker rmi <image id>

列出所有的容器 ID  docker ps -aq
停止所有的容器 docker stop $(docker ps -aq)
删除所有的容器 docker rm $(docker ps -aq)
删除所有的镜像 docker rmi $(docker images -q)
复制文件 docker cp mycontainer:/opt/file.txt /opt/local/docker cp /opt/local/file.txt mycontainer:/opt/

为这些命令创建别名
# ~/.bash_aliases

# 杀死所有正在运行的容器.
	alias dockerkill='docker kill $(docker ps -a -q)'

# 删除所有已经停止的容器.
	alias dockercleanc='docker rm $(docker ps -a -q)'

# 删除所有未打标签的镜像.
	alias dockercleani='docker rmi $(docker images -q -f dangling=true)'

# 删除所有已经停止的容器和未打标签的镜像.
	alias dockerclean='dockercleanc || true && dockercleani'

错误信息

1、Error response from daemon: conflict: unable to delete 1402670d9079 (must be forced) - image is being used by stopped container 5c8c07b32f09
删除镜像失败
解决: 需要先删除不运行的容器,docker ps -a
docker rm 容器名
docker rmi 镜像名

Docker容器间通信方法:https://juejin.cn/post/6844903847383547911

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

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

相关文章

认识哈希表

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Java数据结构 格言&#xff1a;目之所及皆为回忆&#xff0c;心之所想皆为过往 目录 为什么我们需要哈希表&#xff1f; 哈希表的原理 什么是哈希值 冲突 负载因子 解决冲突 闭散列 开散列/哈希桶 代码实现 不考虑…

我们为什么需要调用InitCommonControls?

很多第一次使用外壳通用控件 (Shell common controls) 的新手碰到的问题之一是&#xff1a;他们经常忘记调用 InitCommonControls 。 但是如果你有机会查看这个函数的反汇编代码&#xff0c;则你会发现&#xff1a;这个函数实际上不做任何事情&#xff0c;就像另外一个函数 Flu…

python--pip常用命令、国内PyPI镜像、使用pip安装第三方库

让我们来看看具体内容&#xff1a; 一. pip常用命令 列出已安装的包&#xff1a; pip freeze or pip list 导出requirements.txt&#xff1a; pip freeze ><目录>/requirements.txt 在线安装包&#xff08;模块库&#xff09;&#xff1a; pip install <包名>…

论文解读:为了数据中心的未来,存算这对CP竟然又离了

古语有云&#xff1a;天下大势分久必合、合久必分。 同样&#xff0c;在数据中心多年的发展历程中&#xff0c;计算与存储也经历了多次分分合合。从大型机的计算与存储紧耦合&#xff0c;到小型机经典的IOE存算分离架构&#xff0c;再到随云兴起的超融合让存算再次融合&#x…

达梦数据库的名词解释

达梦数据库的名词解释 C/S、客户端、服务器、物理结构、逻辑结构、文件系统、文件、数据库、数据库实例、表空间、表、段、簇、页、用户、模式、角色、 一、数据库的组成 客户端连接服务器&#xff0c;通过数据库实例&#xff08;共享内存后台进程及线程&#xff09;将磁盘内…

关于修复预制体上UnityEngine.UI引用丢失的一种思路

在开发项目过程中&#xff0c;如果出现了Unity版本变化&#xff0c;有可能会导致一些预制体上的UI组件丢失&#xff0c;特别是大量UI脚本&#xff0c;明明一看就知道这个是Text组件&#xff0c;但是一个大大的missing出现在预制体上&#xff0c;让人产生了莫名的恐慌。 一、根…

头歌计算机组成原理MIPS寄存器文件设计

全部答案点击底部 <?xml version"1.0" encoding"UTF-8" standalone"no"?> <project source"2.15.0.2.exe" version"1.0"> This file is intended to be loaded by Logisim http://logisim.altervista.org &…

Linux | 二级页表的虚拟地址是怎么转换的?

文章目录页的概念可执行文件的虚拟地址二级页表的转换二级页表的优点页的概念 在聊文件系统时&#xff0c;我提到操作系统是以块为基本单位进行IO的&#xff0c;一个块的大小为4KB&#xff0c;在文件系统中它的名字叫做块&#xff0c;在内存系统中它的名字叫做页&#xff0c;p…

并发编程十 定时任务定时线程池

一 ScheduledThreadPoolExecutor 定时线程池类的类结构图 它接收SchduledFutureTask类型的任务&#xff0c;是线程池调度任务的最小单位&#xff0c;有三种提交任务的方式&#xff1a; schedulescheduledAtFixedRatescheduledWithFixedDelay 它采用DelayQueue存储等待的任务…

带你玩转序列模型之Bleu得分注意力模型语音识别

目录 一.Bleu得分 二.注意力模型直观理解 三.注意力模型 四.语音识别 五.触发字检测 一.Bleu得分 先跳过&#xff0c;等回头用得到了再来补。 二.注意力模型直观理解 在本周大部分时间中&#xff0c;你都在使用这个编码解码的构架&#xff08;a Encoder-Decoder archit…

MATLAB算法实战应用案例精讲-【图像处理】目标检测

前言 目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割。它将目标的分割和识别合二为一,其准确性和实时性是整个系统的一项重要能力。尤其是在复杂场景中,需要对多个目标进行实时处理时,目标自动提取和识别就显得特别重要。 随着计算机技术的发展和计算机视…

AutoSAR基础:Port与Dio

AutoSAR基础:Port与Dio配置一.配置port1.Configurator1-1.进入Basic Editor->Port1-2.配置P00.0脚1-2-1.Port口1-2-2.Pin脚配置1-3.配置P00.11-3-1.Pin脚配置2.config导出生成代码3.代码部分3-1.config生成代码3-2.Write与Read3-2-1.Read函数3-2-2.Write函数二.配置Dio1.Con…

[附源码]计算机毕业设计基于SpringBoot的校园报修平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

qt使用http get和post

qt使用http get和post 本文目录qt使用http get和post准备get请求widge.hwidget.cpppost请求widge.hwidget.cpppost请求的数据格式参数写在url后面使用application/x-www-form-urlencoded使用application/json使用multipart/form-data传送文件准备 使用到网络编程&#xff0c;需…

Nginx配置实例-反向代理

1、实现效果 打开浏览器&#xff0c;在浏览器地址栏输入地址www.123.com&#xff0c;访问tomcat主页面。 2、准备工作 &#xff08;1&#xff09;在 liunx系统安装tomcat&#xff0c;使用默认端口8080 上传安装文件&#xff0c;并解压缩到/opt/tomcat。 进入tomcat的bin目录中…

[附源码]Python计算机毕业设计Django人员信息管理

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

ArrayList为什么线程不安全以及三种解决办法【详细】

目录不安全原因解决办法VectorCollectionsCopyOnWriteArrayList三种解决方式总结不安全原因 我们可以看一下ArrayList源码&#xff0c;找到add方法&#xff0c; public boolean add(E e) {ensureCapacityInternal(size 1); // Increments modCount!!elementData[size] e;r…

【java】Lambda表达式

文章目录体验Lambda表达式Lambda表达式的标准格式Lambda表达式的练习抽象方法无参无返回值抽象方法带参无返回值抽象方法带参带返回值Lambda表达式的省略模式Lambda表达式的注意事项Lambda表达式和匿名内部类的区别体验Lambda表达式 package heima.Lambda;import heima.多线程.…

HTML5期末大作业:旅游网页设计与实现——旅游风景区网站HTML+CSS+JavaScript 景点静态网页设计 学生DW静态网页设计

&#x1f468;‍&#x1f393;静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计&#x1f469;‍&#x1f393;&#xff0c;一般的网页作业需要融入以下知识点&#xff1a;div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

JMeter入门教程(9) --参数化

文章目录1.任务背景2.任务目标3.任务实操3.1 CSV数据文件1.任务背景 参数化是测试过程中很常用的一种技巧&#xff0c;可以将脚本中的某些输入用参数来代替&#xff0c;比如登陆时传递参数&#xff0c;在脚本运行时指定参数的取值范围和规则 2.任务目标 掌握基于JMeter性能测…