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

Docker学习笔记

Docker是开源应用容器引擎,让开发者可以将应用程序和所有依赖打包到一个轻量级可移植容器中。然后在任何支持Docker的环境中运行。

Docker核心概念:容器、镜像、Dockerfile和镜像仓库。

容器
一种轻量级的虚拟化技术,共享操作系统内核但保持独立的运行环境,比传统虚拟机更快速且占用资源少。

容器是Docker技术的核心运行单元,是一种轻量级的虚拟化技术实现方式。与传统虚拟机相比,容器不需要模拟完整的硬件环境,也不需运行独立的操作系统内核。容器在运行时与其他容器和宿住机共享操作系统内核。容器之间相互独立,每个容器都拥有自己的文件系统、网络和进程空间,应用之间不会互相干扰。

镜像
镜像是用于创建容器的模版,包含运行应用所需的代码、库和配置文件。

镜像是创建Docker容器的基础,用户可直接用现成镜像如从Docker Hub下载。镜像采用分层存储结构,每一层代表一个修改步骤。镜像中不包含任何的动态数据,构建后内容不再变动。

Dockerfile
一个写明了如何一步步构建镜像的文本文件,通过执行其中指令,Docker能自动生成镜像。

Dockerfile是用于定义镜像构建过程的脚本文件,由一系列指令组成,比如FROM指定基础镜像,RUN执行命令,COPY复制文件等,Docker根据Dockerfile的指令自动构建镜像。

镜像仓库
集中存储和分发镜像的地方。

Docker Hub是最常用的公共仓库,由官网和社区维护的镜像。可以基于镜像构建镜像。我们也可以搭建自己私有镜像库。
以上4个共同构成Docker的工作流程:
1、开发者编写Dockerfile定义环境,构建Docker镜像;
2、构建好的镜像推送到镜像仓库;
3、在支持Docker等机器上拉取镜像并运行容器。
虚拟机:通过Hypervisor软件模拟完整的硬件环境,管理每个虚拟机中操作系统的运行。每个虚拟机都需要独立的操作系统、应用程序和必要的依赖文件等,也因此启动速度较慢且占用大量内存和存储。

镜像使用

拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • OPTIONS(可选):选项参数。
    • –all-tags,-a:下载指定镜像的所有标签。
    • –disable-content-trust:跳过镜像签名验证。
  • NAME:镜像名称,通常含注册表地址如docker.io/library.ubuntu,不带注册表地址默认从Docker Hub进行拉取。
  • TAG(可选):镜像标签,默认为latest。
  • DIGEST(可选):镜像的SHA256摘要。
    例:下载最新nginx镜像docker pull nginx,下载某版本的nginx镜像docker pull nginx:1.0.0
镜像标签

用来标识和管理镜像版本的工具,每个镜像可以多个标签,可用于区分不同版本或不同环境。使用docker tag可以为镜像创建标签。
将本地nginx镜像标记为my-nginx:v1。

docker tag nginx:latest my-nginx:v1
推送镜像
docker push 
查看镜像

查看所有镜像列表:docker images nginx
查看指定镜像详细信息:docker inspect nginx
查看镜像构建的历史:docker history nginx

查找镜像

docker search

删除镜像

1、删除单个镜像
docker rmi 镜像ID|镜像名称
查找镜像ID:docker images
2、清除镜像缓存
docker image prune
不加标签时会只删除悬空镜像(没有标签且不被任何镜像引用的中间层)。加上-a参数会删除所有未被容器或镜像引用的镜像,包括构建缓存和旧版本镜像。
清理完成后可用docker system df查看磁盘使用情况。

http://www.xdnf.cn/news/4800.html

相关文章:

  • deeplabv3+街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用,cityscapes数据集_25
  • python小说网站管理系统-小说阅读系统
  • 什么是HTML、CSS 和 JavaScript?
  • 电容的基本介绍
  • WPF 子界面修改后通知到主页面
  • 嵌入式 C 语言控制语句
  • 44 Python MySQL(PyMySQL 驱动)
  • Java的对象头:原理与源码详解
  • python实现的音乐播放器
  • 企业生产安全管理平台的功能架构
  • Java后端程序员学习前端之JavaScript
  • PHP反序列化漏洞
  • CBO和HBO区别及介绍
  • 【包含例题P1955、P1892、P2024、P1196】并查集、扩展域并查集、带权并查集
  • arcmap栅格数据地理坐标转换,从WGS84坐标到2000
  • 深入理解Bitmap及Roaring Map:原理与应用详解
  • PPIO × GPT4All:构建本地知识库,让AI更懂你
  • 从单智到多智:深度拆解基于MetaGPT的智能体辩论
  • AI原生手机:三大技术阵营的终极对决与未来展望
  • 使用Maple Flow创建电路最坏情况分析WCCA工作表
  • 【前端】每日一道面试题2:解释CSS盒模型的box-sizing属性,以及它在响应式布局中的作用。
  • 字符串哈希(算法题)
  • VR 南锣鼓巷:古老街区的数字化绘卷与沉浸式遨游​
  • 高处安装、维护拆除作业考试重点知识
  • PlatformIO
  • 遗传算法求解异构车队VRPTW问题
  • 基于Credit的流量控制
  • SQL知识点总结
  • 【Yolo精读+实践+魔改系列】Yolov3论文超详细精讲(翻译+笔记)
  • 第一次被AI指点出文章的问题