Docker容器内容总结

目录

一、Docker概述

1.Docker是什么

2.Docker三个统一方式

3.Docker三要素

4.Docker底层原理

5.Docker常规命令

6.Docker网络

7.Docker散装的功能

二、Dockerfile

1.Dockerfile创建镜像流程

2.Dockerfile常规指令

三、Docker-Compose

1.YML文件内部控制参数

2.Docker-Compose命令

四、Consul

1.定义

2.启动consul后默认会监听的5个端口

五、Docker镜像仓库

1.分类

 2.Harbor核心组件

3.Docker-Harbor私有仓库过程

4.私有仓库指向私有仓库的方式


一、Docker概述

1.Docker是什么

容器技术之一,是虚拟化技术迭代后的产物---->容器和虚拟化有何区别(容器和KVM有何区别)
核心点:KVM是完整的操作系统,但是容器共享内核的进程来支持

容器优势---->对于市场的流行的技术来说  微服务

容器:对应用程序和系统进行了解耦、发布方便、更新方便、移植方便、冗余备份方便(LB副本集)

2.Docker三个统一方式

  • 统一应用的封装    image
  • 统一应用环境       docekr engine
  • 统一应用的运行的方式   container容器 runc(容器运行时环境)

3.Docker三要素

  • 镜像:包含了各种环境或者服务(tomcat)的一个模板
  • 容器:是镜像(run)起来之后的一个实例,可以把容器看做一个简易版的linux环境容器就是集装箱(大鲸鱼logo上的集装箱)
  • 仓库:是存放镜像的场所,私有仓库    共有仓库 Docker hub (https://hub.docker.com)

docker是一种 C/S端架构,server端位于系统,表现形势为dameon(守护进程)

4.Docker底层原理

  • cgroup(资源限制)
  • namespace(资源隔离)    6个命名空间(隔离)
    • UTS:主机名与域名
    • IPC:信号量、消息队列和共享内存
    • PID:进程编号
    • NETWORK:网路设备、网络栈、端口等
    • MOUNT:挂载点(文件系统)
    • USER:用户和用户组(3.8以后的内核才支持)

5.Docker常规命令

命令含义
Docker images查看本地镜像

Docker ps

查看正在运行容器
Docker run运行容器
Docker start/stop/restart容器的开启/停止/重启
Docker create创建镜像
Docker tag为镜像添加标签
Docker rm/rmi删除容器/删除镜像
Docker build构建自定义镜像
Docker push上传镜像
Docker login/logout登入和登出镜像
Docker commit创建和改变镜像
Docker -it/-d/-v/-p(-P)/-c交互式会话/不关闭容器/创建逻辑卷/指定端口/指定shell操作
Docker exec进入容器
Docker version/info查看Docker版本信息/详细信息
Docker pull/search拉取镜像/搜索镜像
Docker logs输出日志
Docker cp复制,从宿主机到容器内,也可以容器内到宿主机
Docker save/load, <重定向输入(导入)导入正在运行的容器
Docker export/import导出正在运行的容器
network查看网卡
top查看运行状态
Docker stats查看运行的容器状态
选项含义
Docker-Compose up创建和启动容器
Docker-Compose down删除容器、网络、数据卷和镜像
Docker-Compose scale指定一个服务容器启动数量
Docker-Compose exec在容器里面执行命令
Docker-Compose build重新构建服务

6.Docker网络

  • None:是最简单的网络模式,此网络模式表示将容器拥有自己的网络命名空间,但不会进行任何网络配置,这实际给了用户完全的自主权来给自己配置容器的网络
  • Host:容器使用宿主机的网络直接公开服务,这意味着你在容器中运行一个Web服务,那么它就直接绑定到主机的网络接口上,而不是通过Dcoker进行任何网络转发
  • Bridge:默认的网络模式,每个新创建的容器都将该网络分配一个IP地址,此网络的模式允许所有Docker容器之间以及Docker宿主机之间进行互相通信
  • Container:这种模式允许容器去共享另一个容器网络命名空间,这说明两个容器可以相同的网络接口和IP地址,他们共享的是同一网络命名空间
  • overlay:叠加网络,指的就是在物理网络层上搭建一层网络,通过某种技术再去构建一张相同的网络  这张称为逻辑网

7.Docker散装的功能

  • 挂载: ① 数据卷  ② 数据卷容器
  • 暴露: ① -p 指定 ② -P  "默认分配"  49153为起始
  • 自定义网络 (指定容器IP)

二、Dockerfile

1.Dockerfile创建镜像流程

docker image 的制作---->过程:docker image镜像分层(① 内核-共享,② base image基础镜像层③ image 镜像层---->container容器工作层---->缓存复用)

基于镜像层介绍2个点:

  • 叠加能力:现在借助于overlay2 (存储引擎)
  • 分层分类(4层):lower(下层)  upper(上层) worker(容器层)  merged(视图/展示层)

2.Dockerfile常规指令

指令含义
FROM基础镜像(buid)
MAINTAINER维护人员的信息
RUN表示执行 ,并且RUN指令会产生一层新的镜像层
ENV环境变量传入
ADD/COPY

将源文件复制到镜像中

ADD则可以使用URL下载复制镜像,会将tar.gz的包自动解压并复制过去;COPY只是复制 

EXPOSE 指定新镜像加载到 Docker 时要开启的端口
VOLUME 在容器中创建一个挂载点
WORKDIR为后续的 RUN、CMD、ENTRYPOINT 指定工作目录
USER指定运行容器时的用户
HEATHCHECK健康检查
CMD启动容器时默认执行的命令或者脚本,Dockerfile只能有一条CMD命令。如果指定多条命令,只执行最后一条命令。
如果在docker run时指定了命令或者镜像中有ENTRYPOINT,那么CMD就会被覆盖。
CMD 可以为 ENTRYPOINT 指令提供默认参数。
ENTRYPOINT设定容器启动时第一个运行的命令及其参数。
可以通过使用命令docker run --entrypoint 来覆盖镜像中的ENTRYPOINT指令的内容。

三、Docker-Compose

1.YML文件内部控制参数

  • name
  • 自定义挂载卷
  • 自定义env环境变量 运行前》自定义网络
  • 自定义端口
  • 自定义传参(运行后)
  • 可以同时对多个容器个性化定义/编排

2.Docker-Compose命令

命令含义
build重新构建服务
ps列出容器
up创建和启动容器
exec在容器里面执行命令
scale指定一个服务器启动数量
top显示容器进程
logs查看容器输出(日志)
down删除容器、网络、数据卷和镜像
stop/start/restart停止/启动/重启服务

四、Consul

1.定义

动态 发现和更新应用(配置中心   temlate)
consul agent 的server模式
consul agent dev 模式开发者模式 (能使用所有功能)

2.启动consul后默认会监听的5个端口

  • 8300:集群内部数据的读写和复制,Replication(副本同步)、Leader(领导者)、Forwarding(转发)
  • 8301:单个数据中心cossip协议通讯,Lan Cossip的端口
  • 8302:不同据中心gossip协议通讯,Wan Gossip的端口
  • 8500:提供获取服务列表,注册服务,注销服务等HTTP接口:提供UI服务
  • 8600:采用DNS协议提供服务发现功能,用于已注册的服务发现,查看节点信息端口

五、Docker镜像仓库

1.分类

  • registry 私有仓库的核心,  只有字符终端
  • 进阶版  harbor 

 2.Harbor核心组件

  • Proxy反向代理 通过一个前置的反向代理,接收浏览器,Docker客户端的请求,并且把请求转发给后端的不同的服务
  • Registry:负责存储Docker镜像,处理Docker pull/push 命令下载和上传
  • Core Services
  • Harbor:核心功能,包括UI、WebHook、Token
    • UI:提供图形界面
    • Webhook:网站一些服务功能(通知机制)
    • Token:令牌,提供身份验证服务
  • Log collector:负责日志(其他组件的日志 上传 下载 用户 访问等日志)的收集,收集这些日志,以供后期进行分析和健康检查
  • Databases:为核心组件,提供数据库服务,主要记录数据库镜像的源信息以及用户的身份信息
  • Job Services:主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上
  • Adminserver:用于管理用户操作以及身份认证

3.Docker-Harbor私有仓库过程

  1. 所有的请求或认为的操作都会首先交给proxy(反向代理)
  2. proxy会先将请求转发给后端Core services,Core services 中包含
  3. UI、token(身份验证服务)、webhook(网站的一些服务功能)
  4. 转发给registry(镜像存储),若需要下载镜像等权限操作,需要通过Core services中的token令牌的身份验证服务才行
  5. 每一次下载和上传都产生操作记录,生成日志,保存至database中
  6. database记录保存镜像的元信息及用户与组的身份信息,通过验证授权才能允许相关操作

4.私有仓库指向私有仓库的方式

  • /etc/docker/daemon.json
  • /usr/lib/systemd/system/docker.servce insecure-registrues $HARBOR_IP (私有仓库的IP地址)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/597220.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试集中营—Redis架构篇

一、Redis到底是多线程还是单线程 1、redis6.0版本之前的单线程&#xff0c;是指网络请求I/O与数据的读写是由一个线程完成的&#xff1b; 2、redis6.0版本升级成了多线程&#xff0c;指的是在网络请求I/O阶段应用的多线程技术&#xff1b;而键值对的读写还是由单线程完成的。所…

Vitis HLS 学习笔记--AXI_STREAM_TO_MASTER

目录 1. 简介 2. 示例 2.1 示例功能介绍 2.2 示例代码 2.3 顶层函数解释 2.4 综合报告&#xff08;HW Interfaces&#xff09; 2.5 关于TKEEP和TSTRB 2.6 综合报告&#xff08;SW I/O Information&#xff09; 3. 总结 1. 简介 本文通过“<Examples>/Interface…

pandas入门

pandas入门 一、pandas简介1.1 pandas介绍1.2 pandas的基本功能 二、pandas快速入门2.1 读取数据2.2 验证数据2.3 建立索引2.4 数据抽取2.4.1 选择列2.4.2 选择行2.4.3 指定行和列 2.5 排序2.6 分组聚合2.7 数据转置2.8 增加列2.9 统计分析 一、pandas简介 1.1 pandas介绍 pa…

Qt QInputDialog详解

1.简介 QInputDialog是一个对话框类&#xff0c;用于从用户那里获取一个单一的值。这个值可以是字符串、数字、或者一个列表中的选项。QInputDialog提供了一个方便的方式来快速创建一个输入对话框&#xff0c;无需自己从头开始构建。 QInputDialog支持多种输入类型&#xff1…

【备战蓝桥杯】第十四届蓝桥杯省赛C/C++ B组真题及题解

参加了两届蓝桥杯以及做过了往年的真题我的直观感受是蓝桥杯不再那么“暴力”了&#xff0c;而是逐渐趋向DP和搜素图论方面了。下面是第十四届蓝桥杯省赛C/C B组真题及题解&#xff0c;希望对阅读的你有所帮助。 目录 题目试题A&#xff1a;日期统计试题B&#xff1a;01 串的熵…

Redis学习3——Redis应用之缓存

引言 缓存的意义 Redis作为一个NoSql数据库&#xff0c;被广泛的当作缓存数据库使用&#xff0c;所谓缓存&#xff0c;就是数据交换的缓冲区。使用缓存的具体原因有&#xff1a; 缓存数据存储于代码中&#xff0c;而代码运行在内存中&#xff0c;内存的读写性能远高于磁盘&a…

前后端功能实现——查询所有

目录 1、需求 2、步骤 1&#xff09;创建模块 引入坐标 2&#xff09;创建结构 实现三层架构 3&#xff09;创建表 brand 4&#xff09;创建实体类 Brand 5&#xff09;创建MyBatis配置文件 6&#xff09;创建映射文件 7&#xff09;创建工具类 SqlSessionFactoryUti…

基于FPGA的数字信号处理(9)--定点数据的两种溢出处理模式:饱和(Saturate)和绕回(Wrap)

1、前言 在逻辑设计中&#xff0c;为了保证运算结果的正确性&#xff0c;常常需要对结果的位宽进行扩展。比如2个3bits的无符号数相加&#xff0c;只有将结果设定为4bits&#xff0c;才能保证结果一定是正确的。不然&#xff0c;某些情况如77 14(1110)&#xff0c;如果结果只…

部署YUM仓库以及NFS共享服务

YUM仓库部署 一.YUM概述 YUM仓库源是一种软件包管理工具&#xff0c;用于在Linux系统上安装、更新和删除软件包。YUM仓库源包含了软件包的元数据信息和实际的软件包文件。用户可以通过配置YUM仓库源&#xff0c;从中下载和安装软件包。 常见的YUM仓库源包括&#xff1a; 本…

【一起深度吧!】24/05/03

池化层 最大池化和平均层化&#xff1a;最大池化&#xff1a;平均池化&#xff1a; 从零实现池化层&#xff1a; 最大池化和平均层化&#xff1a; 池化的作用: 1、可以降维&#xff0c;减少要 训练的参数。 2、提取特征&#xff0c;也就是保留主要的特征&#xff0c;过滤掉不重…

7-zip下载、安装

7-Zip 官方中文网站 (sparanoid.com) 7-Zip - 程序下载 (sparanoid.com)

Unity 性能优化之图片优化(八)

提示&#xff1a;仅供参考&#xff0c;有误之处&#xff0c;麻烦大佬指出&#xff0c;不胜感激&#xff01; 文章目录 前言一、可以提前和美术商量的事1.避免内存浪费&#xff08;UI图片&#xff0c;不是贴图&#xff09;2.提升图片性能 二、图片优化1.图片Max Size修改&#x…

Eayswoole 报错 crontab info is abnormal

在执行一个指定的定时任务时 如 php easyswoole crontab show 报错 crontab info is abnormal 如下图所示&#xff1a; 查询了半天 修改了如下配置&#xff1a; 旧的 // 创建定时任务实例 $crontab new \EasySwoole\Crontab\Crontab($crontabConfig); 修改后&#…

山海鲸医疗科技:引领智慧医疗新潮流

随着科技的飞速发展&#xff0c;智慧医疗已经成为医疗行业创新的重要方向。在这个背景下&#xff0c;山海鲸智慧医疗解决方案应运而生&#xff0c;以其先进的技术和全面的服务&#xff0c;为医疗行业带来了前所未有的变革。 山海鲸智慧医疗解决方案是一套集成医疗信息化、大数…

【OneAPI】网页截图API

OneAPI新接口发布&#xff1a;网页截图 可生成指定URL的网页截图。 接口地址&#xff1a;https://oneapi.coderbox.cn/openapi/api/webpage/screenshot 请求参数 参数名类型必填含义说明urlstring是要截图的网页链接例如&#xff1a;https://baidu.comwidthnumber否截图宽度…

龙迅LT9211D MIPI桥接到2 PORT LVDS,分辨率支持高达3840*2160*30HZ

龙迅LT9211D描述&#xff1a; Lontium LT9211D是一款高性能的MIPI DSI/CSI- 2到双端口LVDS转换器。LT9211D反序列化输入的MIPI视频数据&#xff0c;解码数据包&#xff0c;并将格式化的视频数据流转换为AP和移动显示面板或摄像机之间的LVDS发射机输出。LT9211D支持最大14 dB输…

手机运营商二要素验证接口:确保业务操作安全可靠

手机运营商二要素验证接口是一种通过与电信运营商合作的方式&#xff0c;检验手机用户的手机号码与姓名是否一致的服务。这个接口可以广泛应用于各种需要用户实名认证的场景&#xff0c;例如电商、游戏、直播以及金融等行业。 这个接口的作用非常重要&#xff0c;它可以帮助企…

C++——list的特性及使用

list的特性 STL中的list是指带头双向循环列表&#xff0c;list每个元素的存储相互独立&#xff0c;因为其节点存储位置独立不连续&#xff0c;其插入和删除不需要挪动其他元素效率比起vector更高。但也因为存储空间不连续的问题&#xff0c;不能做到和vector一样的随机…

鸿蒙编译子系统详解(二)main.py

1.5.4源码解析 1.5.4.1 build/hb/main.py脚本 这个脚本是编译的主程序脚本&#xff0c;流程如下&#xff1a; 首先是初始化各种module类&#xff0c;然后运行对应模块。 hb分为build,set,env,clean,tool,help几个模块&#xff0c;模块源码位于build/hb/modules/目录下&#xff…

学生管理系统初级

根据题目要求生成大纲 总结: 1.在书写时&#xff0c;考虑到了书写时id可是是abc... 类型是String&#xff0c;但在根据id获取集合中元素时 list.get() &#xff0c;get&#xff08;&#xff09;里面是int类型。 2.在书写还有一点功能并不完全&#xff0c; 2.1查找时是打印所有…
最新文章