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

Docker学习笔记整理

这周不知道写点啥内容做个分享,但还是秉持学会分享的精神,粗略放一些Docker相关的问题和解答吧,后面有机会再补补再深挖深挖o(>﹏<)o

1. 容器VS虚拟机

虚拟机是一种带环境安装的解决方案(资源完全隔离),有以下缺陷:

  1. (1)资源占用多
  2. (2)冗余步骤多
  3. (3)启动慢
  4. Linux容器是一种虚拟化技术,用来对进程进行隔离,对容器内进程接触到的资源都是虚拟的,实现与底层系统的隔离

  5. 2. Docker定义及作用

定义:Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口,提供操作系统级别的虚拟化

作用:

  1. (1) 提供一次性环境
  2. 本地测试他人软件、持续集成时提供单元测试和构建环境
  3. (2) 提供弹性的云服务
  4. Docker 容器可随开随关,适合动态扩容和缩容
  5. (3) 用来组建微服务架构
  6. 通过多个容器,一台机器可以跑多个服务,在本机就可模拟微服务架构
  7. 3. 什么是守护式容器

  • 能够长期运行
  • 没有交互式会话
  • 适合运行应用程序和服务

(ctrl+P ctrl+Q 让程序在后台运行)

4. 数据卷定义及作用

定义:一个可以绕过联合文件为一个或多个容器提供访问的目录/文件,与容器的生命周期独立

作用:

为了数据的持久化和方便容器间的数据的共享

相关操作:

5. 数据卷容器定义及作用

定义:命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器就叫数据卷容器(容器实际上起一个配置信息的作用,连接指定的数据卷)

作用:容器启动时,镜像中指定的数据卷会进行一次完整的初始化,根据镜像指定数据卷来创建的容器所使用的数据卷无法共享

6. Docker的守护进程

7. 容器间的互联

默认允许, 指定容器与容器连接,避免默认容器间用ip地址互联(会因容器的启动而变化ip地址)

8. Docker的跨主机连接的方式

  • 网桥
  • Open vS
  • witchWeave

9. Docker的匿名卷

防止运行时用户忘记将动态文件所保存目录挂载为卷

10. Dockerfile常用指令

  • FROM 指令 用于为镜像文件构建过程指定基准镜像
  • MAINTAINER 指令 用于让Dockerfile制作者提供本人的详细信息
  • LABEL指令 用于为镜像添加元数据
  • COPY指令 用于从Docker宿主机的当前目录复制文件到创建的新镜像中
  • ADD指令 ADD指令类似于COPY指令,所不同的地方是ADD支持使用TAR文件和url路径
  • WORKDIR指令 用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在
  • VOLUME指令 用于在image中创建一个挂载点目录,以挂载docker host上的卷或者其他容器上的卷
  • EXPOSE指令 声明运行时容器提供服务端口,容器打开指定要监听的端口,以实现与外部通信。
  • ENV指令 用于为镜像定义所需的环境变量
  •  RUN指令 用于指定docker build过程中,运行的程序,其可以是任何的命令
  •  CMD指令 类似于RUN指令,CMD指令也可用于运行任何命令或者应用程序
  •  ENTRYPOINT指令 用于为容器指定默认运行的程序,从而使得容器像是一个单独的可执行程序
  •  USER指令 用于指定运行image时或者运行Dockerfile中的任何RUN/CMD/ENTRYPOINT指令指定的程序时的用户和用户组
  •  HEALTHCHECK指令 用于告诉docker怎样去检测一个容器,它还是处于工作状态的
  •  ARG指令 构建参数,与 ENV 作用一至。不过作用域不一样
  •  ONBUILD 用于延迟构建命令的执行
http://www.lryc.cn/news/490797.html

相关文章:

  • 计算机组成原理期末试题三(含答案)
  • django+boostrap实现注册
  • C++初阶——类和对象(下)
  • 趋势洞察|AI 能否带动裸金属 K8s 强势崛起?
  • idea初始化设置
  • LINUX系统编程之——环境变量
  • 健康老龄化:适合老年人的播客
  • 家庭智慧工程师:如何通过科技提升家居生活质量
  • Milvus概念
  • 为什么调用 setState 而不是直接改变 state
  • 【Python爬虫五十个小案例】爬取豆瓣电影Top250
  • cocos creator 3.8 物理碰撞器Collider+刚体RigidBody 8
  • Python爬取豆瓣电影全部分类数据并存入数据库
  • 算法模板1:排序+二分+高精度+前缀+差分
  • SpringBoot实现单文件上传
  • rust中解决DPI-1047: Cannot locate a 64-bit Oracle Client library问题
  • YOLOv11(Ultralytics)视频选定区域目标统计计数及跟踪
  • 24小时自动监控,自动录制直播蓝光视频!支持抖音等热门直播软件
  • InfiniBand(IB)快速上手
  • D74【 python 接口自动化学习】- python 基础之HTTP
  • 移动光猫[HS8545M5-10]获取超密
  • 原生JS和CSS,HTML实现开屏弹窗
  • vue--制作购物车
  • 深度测评腾讯云 HAI 智算服务:高性能 AI 计算的新标杆
  • MQ重复消费与消息顺序
  • 应用商店双弹窗“APP在向用户申请权限时未同步告知用户申请此权限的理由”驳回uni-app应用上线的解决方法
  • 第 32 章 - Go语言 部署与运维
  • 噪杂环境离线语音通断器效果展示
  • 【django】扩展
  • 逆向破解识别基础