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

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 --now

Created 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/amd64

Server:
 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领域的热门话题。它代表着一种全新的软件开发和部署范式,旨在充分利用云计算的优势,并为企业带来更大的灵活性、可靠性和效率。今天我们就来聊一聊这个热门的话题:云原生~ &#x1f4…...

蓝桥杯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、介绍 在机器视觉的开发中&#xff0c;现在有很多通过电机去做相机的聚焦调节&#xff0c;对比手工调节&#xff0c;自动调节效果更好&#xff0c;而且其也能满足设备自动的需求&#xff0c;尤…...

常州IGM机器人RTE497的日常维修保养方法

一、IGM机器人RTE497日常检查 每日工作前&#xff0c;进行以下检查&#xff1a; 外观检查&#xff1a;确认IGM机器人RTE497本体无明显损伤&#xff0c;各部件连接稳固。 电缆检查&#xff1a;检查所有电缆、气管等是否完好&#xff0c;无磨损、无挤压。 润滑检查&#xff1a;确…...

如何利用机器学习和Python编写预测模型来预测设备故障

预测设备故障是机器学习和数据科学的一个常见问题&#xff0c;通常可以通过以下几个步骤来解决&#xff1a; 1. 数据收集 首先&#xff0c;需要收集与设备运行相关的数据&#xff0c;包括&#xff1a; 设备的历史数据环境数据&#xff08;如温度、湿度等&#xff09;使用时间…...

mysql部署(2)主从复制

在前面的基础上&#xff0c;现有26、41两个mysql8的实例&#xff0c;下面以26为主41为从搭建主从复制&#xff1a; 机器主从端口号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];//数组时候可以正常创建&#xff1…...

springboot283图书商城管理系统

图书商城管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书商城管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理…...

FFmpeg-- c++实现:音频流aac和视频流h264封装

文章目录 流程api核心代码muxer.hmuxer.cpp aac 和 h264 封装为视频流&#xff0c;封装为c的Muxter类 流程 分配视频文件上下文 int Init(const char *url); 创建流&#xff0c;赋值给视频的音频流和视频流 int AddStream(AVCodecContext *codec_ctx); 写视频流的head int Se…...

单片机烧录方式,JTAG,ISP,SWD,

常见的词汇 参考 ISP&#xff1a;In System Programing&#xff0c;在系统编程 IAP&#xff1a;In Application Programing&#xff0c;在应用编程 ICP&#xff1a;In Circuit Programing&#xff0c;在电路编程 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

变配电室电气设备运行状态和环境信息缺乏必要的监测评估预警手段&#xff0c;如有一日遭遇突发情况&#xff0c;将危及电气设备安全稳定运行,易造成设备损坏和电力供应中断[2]。 目前&#xff0c;我国变配电室常采用无人管理的室内站设计方案&#xff0c;长期以来变配电室运维工…...

【自记录】VS2022编译OpenSSL1.0.2u

因为突然要编译一个老工程&#xff0c;老工程里面用到了OpenSSL 1.0.x。 于是官网下载了最后一个1.0.x版本1.0.2u。 1 下载安装Perl 去Perl官网下载即可。 使用vcpkg直接安装也可以&#xff0c;比前者更方便 vcpkg install perl #根据实际路径调整 set PATHD:\vcpkg\downloa…...

ES代替品:轻量级搜索引擎MeiliSearch

痛点 虽然Elasticsearch足够灵活强大、扩展性和实时性也较好。但是对于中小型项目来说&#xff0c;Elasticsearch还是显得有些庞大&#xff0c;对硬件设备的要求也较高。那么&#xff0c;在要求不是很高的情况下&#xff0c;我们可以考虑另一种搜索引擎方案&#xff1a;MeiliSe…...

用C语言打造自己的Unix风格ls命令

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

git的起源

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

软件杯 深度学习 python opencv 火焰检测识别

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

C# double类型计算精度问题解决

问题&#xff1a;res 的值0.112450000001&#xff0c;精度不对&#xff0c;预期是0.11245 double force112.45&#xff1b; double res force / Math.Pow(10, index * 3); double force112.45; double res force / Math.Pow(10, index * 3); string str res.ToString(&qu…...

基于Springcloud+Vue校园招聘系统 Eureka分布式微服务

以行动研究为主&#xff0c;辅以文献法、教育实验法和个案研究法等方法相结合的研究方法。在研究方法&#xff0c;遵循软件工程中软件生命周期的规则。概括来讲可以划分成三大步&#xff1a;系统规划、系统开发和系统运行维护。将其上述步骤细分下来&#xff0c;可以分为以下8小…...

【NLP笔记】RNN总结

文章目录 经典RNN单向RNN双向RNNDeep RNNRNN特性总结 变体RNNLSTMGRU 参考及转载内容&#xff1a; 循环神经网络&#xff08;RNN&#xff09;深度学习05-RNN循环神经网络完全理解RNN&#xff08;循环神经网络&#xff09; 传统的CNN&#xff08;Covolutional Neural Network&am…...

[c++]内存管理

1. C/C内存分布 我们先来看下面的一段代码和相关问题 int globalVar 1; static int staticGlobalVar 1; void Test() { static int staticVar 1; int localVar 1; int num1[10] { 1, 2, 3, 4 }; char char2[] "abcd"; const char* pChar3 "abcd"; …...

k8s通过编排文件,实现服务的滚动更新

k8s通过编排文件&#xff0c;实现服务的滚动更新 apiVersion: apps/v1 kind: pod metadata:name: ‘servicename’labels:app: ‘servicename’ spec:replicas: 4 ##pod启动数量最少为2&#xff0c;不然滚动更新无意义strategy:type: RollingUpdate ##设置类型为滚动更新以及…...

安卓面试题多线程 96-100

96. 简述notify()和notifyAll()有什么区别 ?notify可能会导致死锁,而notifyAll则不会任何时候只有一个线程可以获得锁,也就是说只有一个线程可以运行synchronized 中的代码 使用notifyall,可以唤醒 所有处于wait状态的线程,使其重新进入锁的争夺队列中,而notify只能唤醒一…...

第二十六章 配置 Web Gateway 的默认参数

文章目录 第二十六章 配置 Web Gateway 的默认参数网络网关实例主机名最大连接数最大缓存大小网络服务器 ID Cookie 第二十六章 配置 Web Gateway 的默认参数 本页介绍如何通过 Web Gateway 管理页面配置 IRIS Web Gateway 的默认参数。其他文章介绍了如何配置服务器和应用程序…...

npm i安装依赖报错,但是cnpm i 却安装成功

问题描述&#xff1a;在a项目中npm i 安装依赖时发生以上报错&#xff0c;但是cnpm i 却成功&#xff0c;而且在其他项目中npm i 安装其他项目依赖也能成功.... 解决办法&#xff1a;删除项目中package-lock.json文件后再npm i 即可...

C语言经典算法-9

文章目录 其他经典例题跳转链接46.稀疏矩阵47.多维矩阵转一维矩阵48.上三角、下三角、对称矩阵49.奇数魔方阵50.4N 魔方阵51.2(2N1) 魔方阵 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. 三色棋 5. 老鼠走迷官&#xff08;一&#xff09;6.…...

React 19的变化

并发模式&#xff08;非实验&#xff09;: React 的并发模式终于从实验阶段毕业了。这一改变游戏规则的功能允许 React 应用程序同时准备多个版本的 UI。有着更平滑的过渡和更灵敏的用户体验&#xff0c;因为 React 现在可以处理高优先级更新&#xff0c;同时保持应用程序的交互…...

太原网站建设需要多少钱/百度推广代理

如果企业邮箱功能只是简单的收发邮件&#xff0c;迟早会跟不上这个时代发展。企业对邮箱的多样化需求&#xff0c;促使邮箱系统迅速发展&#xff0c;那么邮箱已发展到哪个阶段&#xff0c;有哪些功能&#xff0c;你知道吗&#xff1f;下面跟着小编一起探索下企业邮箱功能吧~ 一…...

公司备案可以做购物网站吗/十种网络推广的方法

我一直試圖通過檢查&#xff0c;並且傳遞 2億個隨機數&#xff0c;並在線程之間劃分它們。 一旦達到 1億個隨機數我一直得到一個錯誤。 我在哪裡分配錯誤或者我做錯了什麼&#xff1f;struct thread{long long int threadID;//The thread idlong long int operations;//The num…...

手机设计软件有哪些/seo 工具分析

转载于:https://www.cnblogs.com/atuo/p/5610924.html...

网站制作需要什么资料/搜索引擎收录查询

上篇&#xff1a;基于文件的Source定义 一、概述 在现实生产环境中&#xff0c;为了保证flink可以高效地读取数据源中的数据&#xff0c;通常是跟一些分布式消息中件结合使用&#xff0c;例如Apache Kafka Kafka的特点是分布式、多副本、高可用、高吞吐、可以记录偏移量等 …...

南昌建设医院网站/众志seo

一个小型的网站&#xff0c;可以使用最简单的html静态页面就实现了&#xff0c;配合一些图片达到美化效果&#xff0c;所有的页面均存放在一个目录下&#xff0c;这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富&#xff0c;网站相关的技术经过这些年的发…...

网站开发人员工资水平/重庆网站网络推广

一。webpack主要用来处理js代码 安装webpack步骤&#xff1a; 首先官网下载node并安装和配置环境 在cmd命令窗口输入node -v 查看是否安装成功 输入npm install webpack3.6.0 安装3.6.0版本的webpack 输入webpack -v 查看是否安装成功 IDE本地安装webpack&#xff1a; 在控…...