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…...
从F=ma到U(r,t)=P{Φ(r,t)⊛⊂M,Ctotal(t)}【能识此文者,必为大智也】
从Fma到U(r,t)P{Φ(r,t)⊛⊂M,Ctotal(t)}Authors: Haiting Allen ChenAffiliations: Chen Xiao’er Creative Workshop, Independent Researcher, Guangzhou, China.Corresponding Author:Name: Haiting Allen ChenEmails: mailto: OFIRMCSIoutlook.com ; OFIRM_…...
2026 InnoCIM 存算一体高校挑战赛报名详情>>
2026 InnoCIM 存算一体高校挑战赛报名正式开启!扫描图中二维码或点击阅读原文即刻报名。报名截止至6月30日,快来组队吧!...
揭秘书匠策AI:课程论文写作的“智慧魔法棒”
在学术的奇妙旅程中,课程论文宛如一座座等待攀登的小山峰,既充满挑战,又蕴含着成长的机遇。对于众多初涉学术领域的学生而言,从构思选题到搭建框架,再到填充内容与精心打磨,每一步都可能伴随着困惑与迷茫。…...
Perseus开源补丁:3步轻松解锁《碧蓝航线》全皮肤完整指南
Perseus开源补丁:3步轻松解锁《碧蓝航线》全皮肤完整指南 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 还在为《碧蓝航线》中那些精美的皮肤无法解锁而烦恼吗?Perseus开源补丁为…...
【算法实战 | DFS应用】从迷宫到图论:深度优先搜索的进阶技巧与优化策略
1. 深度优先搜索的核心思想 深度优先搜索(DFS)就像一个人在迷宫里探险,遇到岔路时总是选择最左边的那条路,走到死胡同再原路返回,尝试下一条未走过的路。这种"不撞南墙不回头"的特性,正是DFS最形…...
Ollama模型管理全攻略:从安装到迁移的完整流程(11.8版本)
Ollama模型管理全攻略:从安装到迁移的完整流程(11.8版本) 在AI模型本地化部署的浪潮中,Ollama凭借其轻量级架构和易用性成为众多开发者的首选工具。特别是对于需要频繁切换不同规模语言模型的团队而言,合理的模型管理策…...
如何快速掌握MuseTalk:实时高质量AI唇同步的完整实践指南
如何快速掌握MuseTalk:实时高质量AI唇同步的完整实践指南 【免费下载链接】MuseTalk MuseTalk: Real-Time High Quality Lip Synchorization with Latent Space Inpainting 项目地址: https://gitcode.com/gh_mirrors/mu/MuseTalk MuseTalk是一款由腾讯音乐娱…...
【GitHub开源项目专栏】TensorRT-LLM深度解析:NVIDIA推理优化引擎架构
摘要 TensorRT-LLM是NVIDIA官方推出的开源LLM推理优化框架,通过AOT编译、算子融合、FP8/INT4量化等核心技术,在H100 GPU上实现了6000 tokens/s的吞吐量。本文深入剖析其核心架构、插件系统、量化技术栈以及与vLLM的生态对比,为企业级LLM部署提…...
WeMod功能增强工具:突破限制的专业级解决方案
WeMod功能增强工具:突破限制的专业级解决方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否曾因WeMod专业版功能受限而无法尽情享受…...
保姆级教程:在YOLOv8.yaml里手动添加P2层,让你的模型看清8x8像素的小目标
在YOLOv8中集成P2层的实战指南:从配置文件修改到性能优化 当面对监控摄像头中快速移动的蚂蚁群或是卫星图像里的小型车辆时,传统目标检测模型往往会力不从心。这些8x8像素级别的微小目标,恰恰是许多实际应用场景中的关键检测对象。本文将彻底…...
