Docker容器引擎
1、Docker是什么。
Docker是在Linux容器里运行应用的开源工具,是一种轻量级的"虚拟机"。Docker的logo设计为蓝色鲸鱼,拖着许多集装箱。鲸鱼可以看作宿主机,而集装箱可以理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。正如Docker的设计宗旨一样:Build、Ship and Run Any App、Anywhere,即通过对应组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的"一次封装,到处运行"的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。
1.2、Docker和虚拟机的区别。
作为一种轻量级的虚拟化方式,Docker与传统虚拟机相比具有显著的优势。
Docker容器很快,启动和停止可以在,、秒级实现,比传统虚拟机要快很多;Docker核心解决的问题是利用容器来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的就是资源,所有Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而在保证应用性能的同时,减小系统开销,使得在一台主机上同时运行数千个Docker容器称为可能;Docker操作方便,还可以通过Dockerfile配置文件支持灵活的自动化创建和部署。
2、Docker的核心概念。
2.1、镜像。
Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向Docker容器引擎的只读模块。
2.2、容器。
Docker的容器是从镜像创建的运行实例。它可以被启动,停止和删除。所创建的每一个容器都是相互隔离、互不可见,可以保证安全性的平台。可以把容器看作一个简易版的Linux环境,Docker利用容器来运行和隔离应用。
2.3、仓库。
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库或者私有仓库,这样一来当下次要在另外一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。
3、安装Docker。
安装Docker
[root@node1 ~]# yum install docker
安装完成后启动Docker并设置为开机自动启动
[root@node1 ~]# systemctl enable docker --nowCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service
查看版本信息
[root@node1 ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64
Experimental: false
4、Docker镜像操作。
名称(NAME)、描述(DESCRIPTION)、星级(STARS)、是否官方创建(OFFICIAL)、是否主动创建(AUTOMATED)。默认的输出结果会按照星级评价进行排序,表示该镜像受欢迎程度,在下载镜像时,可以参考这一项。
搜索镜像
[root@node1 ~]# docker search dhcp
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/networkboot/dhcpd Suitable for running a DHCP server for you... 96 [OK]
docker.io docker.io/joebiellik/dhcpd DHCP server running on Alpine Linux 21 [OK]
docker.io docker.io/instantlinux/dhcpd-dns-pxe Serve DNS, DHCP and TFTP from a small Alpi... 6 [OK]
下载镜像[root@node1 ~]# docker pull docker.io/networkboot/dhcpd
查看镜像信息[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/networkboot/dhcpd latest e25c872f0fca 19 months ago 139 MB
REPOSITORY:镜像属于的仓库。
TAG:镜像的表情信息,标记同一个仓库中的不同镜像。
IMAGE ID:镜像的唯一ID号,唯一标识了该镜像。
CREATED:镜像创建时间。
VIRUTUAL SIZE:镜像大小。
为本地镜像添加新的标签
[root@node1 ~]# docker tag docker.io/networkboot/dhcpd dhcp:dhcp
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dhcp dhcp e25c872f0fca 19 months ago 139 MB
docker.io/networkboot/dhcpd latest e25c872f0fca 19 months ago 139 MB
5、删除镜像。
[root@node1 ~]# docker rmi docker.io/networkboot/dhcpd
Untagged: docker.io/networkboot/dhcpd
6、存出镜像和载入镜像。
导出镜像
命令格式:docker save -o 存出镜像为本地文件
[root@node1 ~]# docker save -o dhcp dhcp
载入镜像[root@node1 ~]# docker load --input dhcp
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dhcp dhcp e25c872f0fca 19 months ago 139 MB
7、Docker容器操作。
创建容器
-i表示容器的输入保持打开;-t表示让Docker分配一个伪终端
[root@node1 ~]# docker create -it dhcp:dhcp /bin/bash
94c8c36080bc5538504e2cf8955f8c33219e777dcbfff50fb9fb2a57e58f2a60查看运行状态,-a可以列出系统最近一次启动的容器
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94c8c36080bc dhcp:dhcp "/entrypoint.sh /b..." 4 seconds ago Created dazzling_elion
启动容器
[root@node1 ~]# docker start 94c8c36080bc
94c8c36080bc
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94c8c36080bc dhcp:dhcp "/entrypoint.sh /b..." 4 minutes ago Up 1 second dazzling_elion
创建容器并启动执行一条shell命令
[root@node1 ~]# docker run dhcp:dhcp /bin/bash -c ls
bin
boot
····省略信息
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b857ee872a79 dhcp:dhcp "/entrypoint.sh /b..." 2 seconds ago Exited (0) 1 second ago brave_bohr加上-d选项后容器会持续在后台进行运行
[root@node1 ~]# docker run -d dhcp:dhcp /bin/bash -c "while true;do echo ok;done"
e739bd03b58f84136e6dddb751ce9a336347cfb61bd01c6d65ebcf9aa291cd51
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e739bd03b58f dhcp:dhcp "/entrypoint.sh /b..." 2 seconds ago Up 2 seconds trusting_wiles
容器的停止
停止后状态处于Exited,终止状态
[root@node1 ~]# docker stop e739bd03b58f
容器的进入
[root@node1 ~]# docker exec -it e739bd03b58f /bin/bash
root@e739bd03b58f:/# ls
bin boot dev entrypoint.sh etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
root@e739bd03b58f:/# exit
8、容器的导出和导入。
容器的导出
将容器导出为centos7dhcp的文件
[root@node1 ~]# docker export e739bd03b58f>centos7dhcp
导出的文件从A机器复制到B机器,之后导入文件成文本地镜像
[root@node1 ~]# cat centos7dhcp/dhcp | docker import - centos7:dhcp
sha256:be20aa541c71442b8c9b48826f093d2a3296d4543aad2636b0320e5c49ec4bfd
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 dhcp be20aa541c71 9 seconds ago 99.1 MB
9、容器的删除。
命令格式:docker rm 容器ID/名称
[root@node1 ~]# docker stop dac67aa96216
[root@node1 ~]# docker rm dac67aa96216
[root@node1 ~]# docker ps -a
相关文章:
Docker容器引擎
1、Docker是什么。 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的"虚拟机"。Docker的logo设计为蓝色鲸鱼,拖着许多集装箱。鲸鱼可以看作宿主机,而集装箱可以理解为相互隔离的容器,每个集装箱中都包含自己的应…...

2.28线程
注意被抢占时是返回原队列,优先级不变。越往下优先级越小。往下没有优先级时,在最低的优先级队列里循环 到达了不一定会被服务,会进入就绪态进行等待 。核心等式就是周转时间运行时间等待时间,带权就是周转/运行, 随着…...

TCP/IP ⽹络模型
TCP/IP ⽹络模型 对于同⼀台设备上的进程间通信,有很多种⽅式,⽐如有管道、消息队列、共享内存、信号等⽅式,⽽对于不同设备上的进程间通信,就需要⽹络通信,⽽设备是多样性的,所以要兼容多种多样的设备&am…...

云原生:重塑未来应用的基石
随着数字化时代的不断深入,云原生已经成为了IT领域的热门话题。它代表着一种全新的软件开发和部署范式,旨在充分利用云计算的优势,并为企业带来更大的灵活性、可靠性和效率。今天我们就来聊一聊这个热门的话题:云原生~ Ǵ…...
蓝桥杯day4刷题日记
P8605 [蓝桥杯 2013 国 AC] 网络寻路 思路来源于https://www.luogu.com.cn/article/iat8irsf #include <iostream> using namespace std; int n,m; int q[10010]; int v[100010],u[100010]; long long res;int main() {cin>>n>>m;for(int i0;i<m;i){cin…...

[Qt学习笔记]Qt下使用Halcon实现采图时自动对焦的功能(Brenner梯度法)
目录 1、介绍2、实现方法2.1 算法实现过程2.2 模拟采集流程 3、总结4、代码展示 1、介绍 在机器视觉的开发中,现在有很多通过电机去做相机的聚焦调节,对比手工调节,自动调节效果更好,而且其也能满足设备自动的需求,尤…...

常州IGM机器人RTE497的日常维修保养方法
一、IGM机器人RTE497日常检查 每日工作前,进行以下检查: 外观检查:确认IGM机器人RTE497本体无明显损伤,各部件连接稳固。 电缆检查:检查所有电缆、气管等是否完好,无磨损、无挤压。 润滑检查:确…...
如何利用机器学习和Python编写预测模型来预测设备故障
预测设备故障是机器学习和数据科学的一个常见问题,通常可以通过以下几个步骤来解决: 1. 数据收集 首先,需要收集与设备运行相关的数据,包括: 设备的历史数据环境数据(如温度、湿度等)使用时间…...

mysql部署(2)主从复制
在前面的基础上,现有26、41两个mysql8的实例,下面以26为主41为从搭建主从复制: 机器主从端口号root密码主从复制账号密码xxx.xx.xxx.26主3306Mysql#26user1/user1#26xxx.xx.xxx.41从3306Mysql#41 一、master主库配置 1、修改mysql配置文件…...

FX-数组的使用
1一维数组 1.1一维数组的创建和初始化 1.1.1数组的创建 //代码1 int arr1[10]; char arr2[10]; float arr3[1]; double arr4[20]; //代码2 //用宏定义的方式 #define X 3 int arr5[X]; //代码3 //错误使用 int count 10; int arr6[count];//数组时候可以正常创建࿱…...

springboot283图书商城管理系统
图书商城管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本图书商城管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理…...
FFmpeg-- c++实现:音频流aac和视频流h264封装
文章目录 流程api核心代码muxer.hmuxer.cpp aac 和 h264 封装为视频流,封装为c的Muxter类 流程 分配视频文件上下文 int Init(const char *url); 创建流,赋值给视频的音频流和视频流 int AddStream(AVCodecContext *codec_ctx); 写视频流的head int Se…...
单片机烧录方式,JTAG,ISP,SWD,
常见的词汇 参考 ISP:In System Programing,在系统编程 IAP:In Application Programing,在应用编程 ICP:In Circuit Programing,在电路编程 ICSP全称是In Circuit Serial Programming JTAG(Joint Test Act…...

【项目管理后台】Vue3+Ts+Sass实战框架搭建一
项目管理后台 建立项目最好是卸载Vetur 新建.env.d.ts文件安装Eslint安装校验忽略文件添加运行脚本 安装prettier新建.prettierrc.json添加规则新建.prettierignore忽略文件 安装配置stylelint新建.stylelintrc.cjs 添加后的运行脚本配置husky配置commitlint配置husky 强制使用…...

基于python 变配电室运行状态评估与预警系统flask-django-nodejs-php
变配电室电气设备运行状态和环境信息缺乏必要的监测评估预警手段,如有一日遭遇突发情况,将危及电气设备安全稳定运行,易造成设备损坏和电力供应中断[2]。 目前,我国变配电室常采用无人管理的室内站设计方案,长期以来变配电室运维工…...
【自记录】VS2022编译OpenSSL1.0.2u
因为突然要编译一个老工程,老工程里面用到了OpenSSL 1.0.x。 于是官网下载了最后一个1.0.x版本1.0.2u。 1 下载安装Perl 去Perl官网下载即可。 使用vcpkg直接安装也可以,比前者更方便 vcpkg install perl #根据实际路径调整 set PATHD:\vcpkg\downloa…...
ES代替品:轻量级搜索引擎MeiliSearch
痛点 虽然Elasticsearch足够灵活强大、扩展性和实时性也较好。但是对于中小型项目来说,Elasticsearch还是显得有些庞大,对硬件设备的要求也较高。那么,在要求不是很高的情况下,我们可以考虑另一种搜索引擎方案:MeiliSe…...

用C语言打造自己的Unix风格ls命令
在Unix或类Unix操作系统中,ls是一个非常基础且实用的命令,它用于列出当前目录或指定目录下的文件和子目录。下面,我们将通过C语言编写一个简化的ls命令,展示如何利用dirent.h头文件提供的函数接口实现这一功能。 #include "…...

git的起源
开篇一张图: 开源项目linux kernel开发,参与开发与维护者众多。1991至2005年期间绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上。 在2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维…...

软件杯 深度学习 python opencv 火焰检测识别
文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...