docker介绍、部署与常用命令
一、docker 介绍
1、容器(Container):
(1) 概念:
容器是一种用于运行和部署应用程序的技术。它将应用程序及其所有依赖项(例如代码、运行时、系统工具、系统库等)打包在一个独立的、可移植的运行环境中,使应用程序可以在不同的计算机上以相同的方式运行。
(2) 传统虚拟机与容器的区别:
① 传统虚拟机(virtual machine):
传统虚拟机技术是在主操作系统上安装虚拟机管理系统 (如 VMware),创建出虚拟机,并在虚拟机上安装运行另一个种操作系统,从而安装部署各种应用。
② Linux容器(Linux Container,LXC):
Linux容器不是模拟一个完整的操作系统,而是从另一个镜像运行,将软件运行所需的所有依赖项打包到一个隔离的容器中
2、docker
(1) 概念:
Docker 是目前最为流行的容器化平台之一,Docker 利用容器技术,可以将源码、配置、环境、版本打包成为一个镜像文件(Docker Image)。这些镜像可以在任何支持 Docker 的环境中运行,做到 “一次镜像,处处运行”(Build, Ship and Run Any App, Anywhere)
(2) 优点:
① 轻量化和高效性: Docker 容器共享主机操作系统的内核,比传统的虚拟机更轻量,快速启动、停止和迁移。
② 快速部署: Docker 容器可以快速构建、部署和复制,缩短了应用程序的上线时间,加快了软件开发周期。
③ 隔离性和安全性: Docker 提供了基于命名空间和控制组的隔离机制,使得容器间相互隔离,避免了应用程序之间的冲突。
④ 生态系统丰富: Docker 生态系统庞大且持续发展,有大量的开源工具、库和容器化服务。
(3) docker 三要素:
镜像(image); 容器(container) ;仓库(repository)
● 镜像:将应用程序和配置依赖打包形成的一个可交付的运行环境,镜像文件可以看做容器的模版;
● 容器:独立运行的应用程序或服务;
● 仓库:存放镜像文件的场所,分为公有仓库和私有仓库。
(4) docker 技术实现:
① Namespace (命名空间) :Docker 使用命名空间来用于隔离系统资源,使得容器可以拥有自己的独立视图,不受其他容器的影响。
② Control Groups (Cgroups,控制组):Docker 使用 Cgroups 来控制每个容器可以使用的资源量,并根据需求动态调整资源分配,防止容器之间资源争用和耗尽。
③ AUFS (Advanced Multi-Layered Unification Filesystem) 联合文件系统:
● 多层叠加:AUFS 允许将多个只读文件系统层叠加在一起,并通过写时复制技术创建容器的可写层。这种多层结构使得容器镜像可以共享和重用共同的文件系统层,节省存储空间并提高了文件系统的效率。
● 写时复制 (Copy-on-Write):当容器需要修改文件或添加新文件时,AUFS 会在创建文件的副本,而不会直接修改原始文件。这种机制使得容器可以在共享的只读文件系统上添加或修改文件,保持底层文件系统的不变性。
(5) 为什么 docker 比 vm 虚拟机快:
① docker 容器上的程序直接使用时机物理机的硬件资源,不需要实现硬件资源虚拟化;
② docker 使用宿主机的内核,不需要和虚拟机一样重新加载一个操作系统。
二、docker 部署
1、域名解析:
2、部署 docker:
① 设置仓库:
yum install -y yum-utils device-mapper-persistent-data lvm2
② 选择清华镜像源:
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
③ 安装 Docker Engine-Community:
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
④ 启动docker:
systemctl start docker
⑤ 查看 docker 版本:
docker version
⑥ 使用 hello-world 镜像测试 docker:
docker run hello-world
由于本地没有 hello-world 这个镜像,所以会先下载 hello-world 镜像,并在容器内运行。
● docker run 的工作流程:
3、镜像加速器配置:
① 登录阿里云,点击 “产品” → “容器” → 选择 “容器镜像服务”;
② 点击 “管理控制台” → 选择 “镜像加速器”,找到加速器地址;
③ 将加速器地址配置到 docker 中:
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
三、docker 常用命令:
1、启动类:
2、镜像命令:
① docker image:查询本地镜像
② docker search 镜像名:搜寻镜像是否在仓库中;
③ docker pull 镜像名:下载镜像
④ docker system df:查看镜像 / 容器 / 数据卷所占的空间
⑤ docker rmi 镜像名 / 镜像id:删除镜像 ;docker rmi -f:强制删除
docker rmi -f $(docker images -qa):删除全部镜像
● 虚悬镜像:仓库名、标签都是<none>的镜像
3、容器命令:
(1) 新建并启动容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
--name:为容器指定一个名称
-d:后台运行容器并返回容器ID,也即启动守护式容器
-i:以交互模式(interactive)运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端(tty),也即启动交互式容器
-e:为容器添加环境变量
-P:随机端口映射
-p:指定端口映射
● 启动交互式容器(前台命令行):以交互模式启动容器,在容器内执行 /bin/bash 命令
● 启动守护式容器(后台服务器):docker 服务在后台保持运行
(2) 查看容器:
列出所有正在运行的容器:docker ps;
查看容器日志:docker logs 容器ID或容器名;
查看容器内运行的进程:docker top 容器ID或容器名;
查看容器内部细节:docker inspect 容器ID或容器名
(3) 重启、停止、删除容器:
删除已停止的容器:docker rm 容器ID或容器名;
强制删除容器:docker rm -f 容器ID或容器名
(4) 退出容器:
exit:退出后容器会停止 ;ctrl+p+q:退出后容器不停止
(5) 重新进入容器:
docker exec -it 容器ID bashShell
docker attach 容器ID
● docker exec 和 docker attach 区别:
attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器的停止
exec 是在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器的停止
(6) 容器备份:
① 备份容器文件:
容器内文件拷贝到宿主机:docker cp 容器ID:容器内路径 目的主机路径
宿主机文件拷贝到容器中:docker cp 主机路径 容器ID:容器内路径
② 导出和导入容器:
导出:docker export 容器ID > tar文件名
导入:cat tar文件 | docker import - 自定义镜像用户/自定义镜像名:自定义镜像版本号
相关文章:

docker介绍、部署与常用命令
一、docker 介绍 1、容器(Container): (1) 概念: 容器是一种用于运行和部署应用程序的技术。它将应用程序及其所有依赖项(例如代码、运行时、系统工具、系统库等)打包在一个独立的、可移植的运行环境中&…...
windows定时任务命令工具schtasks
1.Schtasks概述 schtasks 是 Windows 操作系统中用于调度任务的命令行工具。它允许你在指定的时间或事件触发时运行程序或脚本。通过 schtasks 命令,你可以创建、修改、查询和删除计划任务。 2.Schtasks常用命令 查看帮助文档 schtasks /? 设定每月1号执行数据…...

多个nginx共享值、缓存问题
背景 目前我在集成登录认证功能(cas),使用的架构是nginxlua,由于我们有多个系统(全是前端项目),每套系统都采用nginxlua的方式进行部署(即每个系统都是一个nginx)&#…...

【2023传智杯】第六届传智杯程序设计挑战赛AB组-DEF题解题分析详解【JavaPythonC++解题笔记】
本文仅为【2023传智杯】第六届传智杯程序设计挑战赛-题目解题分析详解的解题个人笔记,个人解题分析记录。 本文包含:第六届传智杯程序设计挑战赛题目、解题思路分析、解题代码、解题代码详解 文章目录 一.前言更新进度记录二.比赛题目(AB俩组)D题题目-abbE题题目 -kotori和…...

Spark---SparkCore(五)
五、Spark Shuffle文件寻址 1、Shuffle文件寻址 1)、MapOutputTracker MapOutputTracker是Spark架构中的一个模块,是一个主从架构。管理磁盘小文件的地址。 MapOutputTrackerMaster是主对象,存在于Driver中。MapOutputTrackerWorker是从对…...

k8s中pod的hostport端口突然无法访问故障处理
故障背景: 租户告知生产环境的sftp突然无法访问了,登录环境查看sftp服务运行都是正常的,访问sftp的hostport端口确实不通。 故障处理过程 既然访问不通那就先给服务做个全面检查,看看哪里出了问题,看下sftp日志&#…...
高德开始“跑腿”
在这个万物皆可到家的时代,外卖已经不仅仅只送餐饮了,无论是鲜花、生活用品,亦或是其他急需品,只需要一个订单,就能够通通搞定。而随着消费者需求的增加,以即时物流为代表的新业态也顺势而起,并…...

Notion for Mac:打造您的专属多功能办公笔记软件
在如今这个信息爆炸的时代,一款高效、便捷的笔记软件对于办公人士来说已经成为必不可少的工具。Notion for Mac,作为一款多功能办公笔记软件,凭借其简洁优雅的界面、强大的功能以及无缝的云端同步,成为了众多用户的首选。 一、多…...

pip 安装软件出现 [No space left on device]
问题: /home文件下空间满了,安装软件可能会出现这个问题 解决方法: pip install --no-cache-dir 安装包名...

【算法刷题】Day8
文章目录 202. 快乐数解法: 11. 盛最多水的容器解法: 202. 快乐数 原题链接 拿到题,我们先看题干 把一个整数替换为每个位置上的数字平方和,有两种情况: 重复这个过程始终不到 1(无限死循环)结…...

基于单片机的智能饮水机控制系统(论文+源码)
1. 系统设计 本次智能饮水机控制系统的设计研究一款以STC89C52单片机为核心的智能饮水机控制系统,其主要功能设计如下: 1.该饮水机利用DS18B20数字温度传感器实时采集饮水机内水的温度,其检测温度范围为0-100℃,精度0.1℃&#…...

电脑格式化了怎么恢复原来的数据?您可以这样做
电脑是我们日常生活和工作中不可或缺的工具,然而,在一些情况下我们可能需要进行电脑格式化,比如为了清理系统垃圾、解决系统故障等。然而,格式化会导致所有数据被删除,给用户带来不便和困扰。本文将介绍电脑格式化了怎…...

mysql 性能排查
mysql 下常见遇到的问题有,mysql连接池耗尽,死锁、慢查、未提交的事务。等等我们可能需要看;我们想要查看的可能有 1.当前连接池连接了哪些客户端,进行了哪些操作 2.当前造成死锁的语句有哪些,是哪个客户端上的&#x…...

SpringBoot+网易邮箱登录注册
文章目录 SpringBoot网易邮箱登录注册pom.xmlapplication.ymlsqlUserEmail.javaUserEmailMapper.javaUserEmailMapper.xmlEmailService.javaUserEmailService.javaUserEmailServiceImpl.javaUserEmailController.javaregister1.html 编写前参考 SpringBoot网易邮箱登录注册 po…...
SQL Server对象类型(7)——4.7.触发器(Trigger)
4.7. 触发器(Trigger) 4.7.1. 触发器概念 与Oracle中类似,SQL Server中,触发器是虚的、被定义的数据库代码对象,其本身并不存储数据,其通过数据库事件来自动触发预先定义的特定代码片段,以解决用户特定业务需求和完成特定任务。 4.7.2. 触发器注解 1)触发器的本质:…...

让@RefreshScope注解来帮助我们实现动态刷新
文章目录 前言举例作用参考文章总结 前言 在实际开发当中我们常常会看到有些类上会加一个注解:RefreshScope,有没有对应的小伙伴去思考过这个东西,这个注解有什么作用?为什么要加?下面我们就来看看这个 RefreshScope …...

c++ opencv使用drawKeypoints、line实现特征点的连线显示
前言 图像经过算子处理后得到若干特征点,使用opencv进行渲染显示出这些特征点并且连线,更直观的对比处理前后的一些差异性 demo核心代码 //画出特征点并连线 void drawFilterLinePoints(cv::Mat& srcMat, cv::Point2f pointStart, cv::Point2f po…...

Ruoyi-cloud / 若依 SpringCloud服务器部署
1、redis 环境 服务器安装redis ,注意 密码 端口 2、mysql 环境 服务器安装 mysql 5.7 以上的版本 代码中的sql 文件夹中有 sql 文件 创建数据库ry-cloud并导入数据脚本ry_2021xxxx.sql(必须),quartz.sql(可选&…...
Java面试题09
1.什么是反射? 反射是Java中的一种机制,允许在运行时获取类的信息、访问对象的属性和方法,以及调用 对象的方法,使得编程更加灵活,但也需要注意性能和安全问题。 在Java中,反射(Reflection&…...
Linux grep命令
目录 一. 前期准备二. 配置项2.1 -e 配置项2.2 -h 配置项 三. 正则表达式3.1 {} 或查询3.2 文件路径和查询关键词中均包含正则表达式 四. zgrep 一. 前期准备 ✅TEST-2023-07-11.txt MPLE0130 Exception 123 ExecTimeMPLE0190 ExecTime123 MPLE0150 TST 1234 ExecTime454 MPL…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...