Docker容器技术 详解!!!

news2024/12/23 9:39:49

目录

一、概述

(一)docker介绍

(二)为什么使用Docker

(三)docker优势

1、运行环境的一致性:

2、更快速地启动部署:

3、更好的隔离性:

4、弹性伸缩、快速扩展:

5、迁移更加方便:

6、持续交付和部署:

二、docker的组成

(一)镜像:类似虚拟机镜像 , 是一个特殊的文件系统

(二)容器:类似linux系统环境,运行和隔离应用。是镜像运行时的实体

(三)仓库:集中存放镜像文件的地方。

三、在操作系统CentOS7.9安装

 (一)配置安装源

 (二)建立元数据缓存

 (三)安装docker-ce

 (四)更换国内源仓库

四、docker 信息查看

(一)docker version

 (二)docker info

 五、镜像相关

(一)组成

 (二)搜索

 (三)拉取

1、docker pull imageName    ​编辑 2、docker pull alpine   

 (四)查看

 (五)删除

(六)上传

(七)修改POSITORY:TAG(修改后保留原image,且imageID相同)

 (八)导出

(九)导入

五、容器相关

(一)启动

1、一次性运行(会直接进入容器中,当exit退出容器时,容器停止运行)

2、后台运行(不会直接进入容器,若进入后exit退出,容器依然运行)

(二)查看

(三)进入(CONTAINER ID 写到不重复即可)

(四)推出

(五)删除容器

(六)将容器导出为归档包

 (七)将容器导入的归档包导入为镜像

(八)将容器直接导出为镜像(服务容器导出为镜像采用该方法)

(九)状态

1、created

2、 up

3、Exited

4、paused

(十)查看容器详细信息

(十一)端口映射

1、-P(大写)                 随机端口映射,默认32768

2、-p(小写)  hostPort:containerPort

 3、若发现不能正常进行访问

(十二)查看容器端口映射

(十三)向容器内拷贝文件

(十四)查看容器运行进程

(十五)查看容器资源使用

(十六)查看容器日志


一、概述

(一)docker介绍

1、Docker 就像是一个轻量级的虚拟机,Docker是一个轻量级的容器,我们可以将环境交给 Docker 来管理,当我们需要移植我们的产品的时候,就可以将环境整个的迁移到另一台主机上,而不像虚拟机一样,迁移一台虚拟机及其资源;

2、Docker 是一个开源的应用容器引擎,基于 Go 语言开发。

3、Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

4、Docker相较于虚拟机来说具有更加轻量,启动更快,效率更高,可移植性更强等优势,实现了“一次封装,到处运行”,不用在关心环境的不一致问题

(二)为什么使用Docker

我们知道一款产品从开发到上线,从开发环境到生成环境。作为开发和运维人员之间协作需要考虑很多问题,尤其是当我们的产品多版本迭代之后,不同环境之间的兼容就会成为一个大问题;
这时 Docker 的出现就解决了这一难题,Docker 的出现使我们开发的软件可以“带环境安装”,即安装的时候,可以把原始环境一模一样的的复制过来,不用在担心环境不一致导致“开发时可以正常运行,生成环境就会出问题”,“在我的机器上可以正常运行,在别人的机器上就不能运行”的问题了

(三)docker优势

1、运行环境的一致性:

Docker 的镜像提供了除了内核之外完整的运行环境,确保了应用运行的一致性;

2、更快速地启动部署:

可以做到秒级,甚至毫秒级的的启动时间。大大节约了开发、测试、部署的时间;

3、更好的隔离性:

每个服务器都是独立运行的、完全隔离的。避免公用的服务器,资源会容易受到其他用户的影响;

4、弹性伸缩、快速扩展:

能够更好的处理集中爆发式的服务器使用压力;

5、迁移更加方便:

“带环境安装”;

6、持续交付和部署:

使用 Docker 可以通过定制镜像来实现持续集成,交付,部署;

二、docker的组成

(一)镜像:类似虚拟机镜像 , 是一个特殊的文件系统

1、操作系统分为内核和用户空间。对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像(Image),就相当于是一个root文件系统。

2、Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。

(二)容器:类似linux系统环境,运行和隔离应用。是镜像运行时的实体

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。

(三)仓库:集中存放镜像文件的地方。

镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中存储、分发镜像的地方,比如后面我们要学的,Docker Registry就是这样的服务。

三、在操作系统CentOS7.9安装

注意:不要关闭防火墙

 (一)配置安装源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

 (二)建立元数据缓存

yum  makecache [fast]

 (三)安装docker-ce

 yum install -y docker-ce

 (四)更换国内源仓库

vim /etc/docker/daemon.json

{
    "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}

 systemctl restart docker

四、docker 信息查看

(一)docker version

 (二)docker info

 

 五、镜像相关

(一)组成

index/name:tag          #tag为latest时不用书写

 (二)搜索

docker search keyWord

 (三)拉取

1、docker pull imageName
    
 2、docker pull alpine   

 (四)查看

docker images

 

 (五)删除

docker rmi imageName

(六)上传

docker push imageName

docker hub登录        docker login

(七)修改POSITORY:TAG(修改后保留原image,且imageID相同)

docker tag  oldName(POSITORY:TAG) newName(POSITORY:TAG)

 (八)导出

docker save  oldName(POSITORY:TAG)    -o filePath/fileName

(九)导入

docker load -i  filePath/fileName

五、容器相关

(一)启动

1、一次性运行(会直接进入容器中,当exit退出容器时,容器停止运行)

docker run -it POSITORY:TAG /bin/bash

2、后台运行(不会直接进入容器,若进入后exit退出,容器依然运行)

docker run -itd  POSITORY:TAG /bin/bash

(二)查看

docker ps -a

(三)进入(CONTAINER ID 写到不重复即可)

 docker exec -it  CONTAINER ID /bin/bash

(四)推出

exit

(五)删除容器

docker rm -f   容器名称或者ID

(六)将容器导出为归档包

docker export  容器名称  -o 归档包名称

 (七)将容器导入的归档包导入为镜像

docker import 归档包名称  repository:tag

(八)将容器直接导出为镜像(服务容器导出为镜像采用该方法)

docker commit  容器名称或ID repository:tag

(九)状态

1、created

docker create

2、 up

(1)docker start

(2)docker run

(3)docker restart

3、Exited

docker stop         容器运行异常

4、paused

docker pause

docker  unpause                恢复

(十)查看容器详细信息

docker  inspect  容器名称或者ID

(十一)端口映射

1、-P(大写)                 随机端口映射,默认32768

2、-p(小写)  hostPort:containerPort

 3、若发现不能正常进行访问

可能是运行的shell不正确

(1)查看容器详细信息        

(2)docker ps -a --no-trunc

(3)查看COMMAND                

(4)将COMMAND中的运行脚本跟在docker run命令的最后

(十二)查看容器端口映射

docker  port  容器名称或ID

(十三)向容器内拷贝文件

docker cp  文件名  容器名称或ID

(十四)查看容器运行进程

docker top  容器名称或ID

(十五)查看容器资源使用

docker stats   容器名称或ID

(十六)查看容器日志

docker logs   容器名称或ID

1、--details:显示更为详细的日志信息。

2、--follow(-f):跟踪日志输出。

3、--since:显示自某个开始时间的所有日志。

4、--tail:仅列出最新的N条容器日志。

5、--timestamps(-t):显示时间戳。

6、--until:显示到某个截止时间的所有日志。

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

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

相关文章

FreeRTOS_任务切换

目录 1. RendSV 异常 2. FreeRTOS 任务切换场合 2.1 执行系统调用 2.2 系统滴答定时器(SysTick)中断 3. PendSV 中断服务函数 4. 查找下一个要运行的任务 4.1 通用方法 4.2 硬件方法 5. FreeRTOS 的时间片调度 6. 时间片调度实验 6.1 实验程序…

Pushgetway安装和使用

1、Pushgetway安装和使用 1.1 Pushgateway是什么 pushgateway 是另一种数据采集的方式,采用被动推送来获取监控数据的prometheus插件,它可以单独运行在 任何节点上,并不一定要运行在被监控的客户端。 首先通过用户自定义编写的脚本把需要监…

ClickHouse浅谈

文章目录 前置知识什么是OLAP与OLTP行式数据库与列式数据库什么是行式和列式?行式和列式的优缺点 ClickHouse什么是clickhouse?clickhouse的使用架构clickhouse的优点和缺点clickhouse的功能特性计算层服务层向量化引擎 clickhouse的使用案例与其他OLAP相…

如何打开远程电脑的任务管理器?

关于任务管理器 任务管理器可以显示远程计算机后台运行的进程和应用程序及其使用状态。通过任务管理器提供的信息,您可以了解是否有程序或进程占用过多的CPU和内存,然后您可以选择结束应用程序或结束进程以提高远程电脑的运行速度。 如何访问远程电脑上…

SD 系统自动计算的税额 有差异

SD 系统自动计算的税额 有差异 1,002,000.00 * 13% 115,274.34 产生了0.03的价格舍入差异 (保存前是正确的,保存后产生差异) 解决办法:取消条件类型组条件即可

辅助行走机器人开发 —— 下位机控制

文章目录 总体设计硬件选型控制模式程序流程1 初始化2 FreeRTOSBalance_taskMPU6050_taskShow_taskLed_taskPs2_taskData_task 3 中断串口中断 辅助行走机器人开发项目总结 总体设计 项目分为语音模式、导航模式和手动模式。 语音模式、导航模式为ROS下发控制指令&#xff1…

java.lang.UnsupportedOperationException 异常处理

通过 json 字符串转化成的 asList &#xff0c;对该 List 进行 add 时&#xff0c;抛出异常 java.lang.UnsupportedOperationException 处理方案 List string new ArrayList<>(asList);

企业邮箱的多重用途:了解企业邮箱在工作中的重要作用

邮箱已经成为商务交流不可或缺的一部分。在企业界&#xff0c;邮箱被用于各种各样的任务&#xff0c;从内部沟通到客户服务。虽然许多组织已经转向更现代的通信方式&#xff0c;如即时消息&#xff0c;企业邮箱仍然是任何成功的商业运作的重要组成部分。以下是公司邮箱的一些主…

【小程序上传报错】message:Error: 系统错误,错误码:80058,desc of scope.userLocation is empty

根据错误信息 “Error: 系统错误&#xff0c;错误码&#xff1a;80058,desc of scope.userLocation is empty”&#xff0c;这是一个系统错误&#xff0c;错误码为80058。错误信息中提到了 scope.userLocation 的描述为空。 可能是因为在小程序中使用了 scope.userLocation 权…

5.4 服务器编程基本框架和两种高效的事件处理模式

5.4 服务器编程基本框架和两种高效的事件处理模式 服务器编程基本框架 虽然服务器种类繁多&#xff0c;但其基本框架都一样&#xff0c;不同之处在于逻辑处理&#xff08;比如开发Web服务器项目&#xff0c;浏览器客户端向服务端发送http请求&#xff0c;服务器对请求报文进行…

高压线路零序电流方向保护程序逻辑原理(三)

四、零序保护故障处理程序原理 零序保护逻辑程序可分为三个模块&#xff1a;快速动作部分、全相循环和非全相循环模块。这是根据零序保护的特点而设计的。任何一种高压线路保护都要求快速处理I段范围内的严重故障&#xff0c;所以零序保护与距离保护一样配有快速动作部分程序模…

分不清楚蝴蝶的种类,让AI来告诉你,基于YOLOv5开发构建轻量级蝴蝶细粒度目标检测识别系统

小时候有时间就很喜欢趁着下课放学的时间去抓蝴蝶玩&#xff0c;五彩多样的蝴蝶让人应接不暇&#xff0c;现在早就过了那个天真玩耍的年纪了&#xff0c;如今看到蝴蝶的第一反应就是这是什么蝴蝶&#xff0c;没有专业的知识支撑很难识别出来具体的种类&#xff0c;本文的主要目…

电脑bios使用的uefi启动,系统盘使用的mbr格式,为什么安装完系统无法进入?

概要 在电脑的安装系统过程中&#xff0c;我们会遇到一些问题&#xff0c;比如说使用UEFI启动但是磁盘分区使用MBR格式&#xff0c;导致系统安装完成之后无法引导。这是因为UEFI启动只支持GPT格式的磁盘分区。 在本文中&#xff0c;我们将探讨如何将磁盘转换成GPT格式&#xf…

一种新的程序在线升级的实现(学习)

介绍一种新的程序在线升级方法&#xff0c;以及程序在线升级在嵌入式系统中的应用和实现。设计将从系统原理和实现介绍该程序在线升级方法。利用串口作为通讯方式&#xff0c;自定义通讯协议。 上位机将升级文件传给下位机&#xff0c;下位机将数据解析后存储在内部Flash中。解…

用矩阵处理3D变换

Rotation 也可以把三个旋转矩阵合并为一个综合旋转矩阵: 平移和旋转结合 有时我们想要将平移和旋转结合起来&#xff0c;这样我们就可以在一次操作中同时进行两者&#xff0c;但是我们不能用3x3矩阵来做3D平移&#xff0c;只能用4x4矩阵来做&#xff0c;如下所定义&#xff1a…

尚硅谷Docker实战教程-笔记07【Docker常规安装简介】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【理念简介、官网介绍、平台入门图解、平台架构图解】尚硅谷Docker实战教程-笔…

嵌入式基础知识-总线带宽

带宽&#xff0c;最容易想到的是上网用的网络带宽&#xff0c;在嵌入式软件开发中&#xff0c;也会用到带宽&#xff0c;这个带宽的含义就不一样了&#xff0c;区别是什么&#xff1f;本篇就来介绍一下&#xff0c;并通过一些例子来进行带宽的计算。 先来简单看下不同领域的带…

交叉熵和softmax

交叉熵cross-entropy loss 最大化似然函数&#xff0c;最小化负的似然对数函数 最终的交叉熵损失函数&#xff0c;最小化该loss&#xff1a; nn.BCELoss def criterion(yhat, y):out -1 * torch.mean(y*torch.log(yhat) (1-y) * torch.log(1-yhat))return outsoftmax

51单片机一氧化碳烟雾报警器mq2MQ7ADC0832采集

实践制作DIY- GC0152--- 一氧化碳烟雾报警器 基于51单片机设计------- 一氧化碳烟雾报警器 二、功能介绍&#xff1a; STC89C52单片机lcd1602adc0832mq2烟雾传感器mq7烟雾传感器蜂鸣器2个按键设定烟雾报警阈值 2个按键设定一氧化碳报警阈值 1.通过ADC0832采集MQ2烟雾输出的电…

嵌入式系统中STM32时钟系统详解

1. STM32的时钟源主要有&#xff1a; 内部时钟 外部时钟 锁相环倍频输出时钟 1.1 详细介绍 HSI(内部高速时钟) 它是RC振荡器&#xff0c;频率可以达到8MHZ&#xff0c;可作为系统时钟和PLL锁相环的输入 HSE&#xff08;外部高速时钟&#xff09; 接入晶振范围是4-16MHZ&a…