Docker概览

docker是一个开发,运输,承载应用的开源平台。docker能够将一个大型项目的各个模块独立,各模块独立也就意味着传送独立、部署独立、环境独立、测试独立,为开发大型项目提供了极大的方便。

docker允许在一个约束少、独立的环境中对应用打包和运行,该环境叫做容器。docker的独立性和安全性允许多个容器在一个给定的主机上同时运行。容器中的环境和主机中的环境是彼此独立的,且容器可以传输和分享。

Docker架构

docker使用客户-服务器的架构,服务器完成构建、运行、分发容器的工作;客户和服务器可以在同一台主机上进行工作,也可以通过远程链接,在各自的主机上工作。

Docker术语

  • The Docker daemon(dockerd)
    可以看做客户-服务器架构中的服务器,daemon听取docker api请求,并管理docker的对象,比如图像(images),容器(containers),网络(network),容积(volumes)。daemon可以与其他daemon交流,以管理docker服务

  • The Docker client(docker)
    可以看做客户-服务器架构中的客户,也是docker用户交互的主要方式。当docker用户使用命令docker run时,客户发送这些命令到dockerd。客户能与多个daemon进行交流

  • Docker registries(registry)
    保存docker image的地方,Docker Hub是一个任何人都可以公开登记的地方,且在docker上拉取image时如非指定,默认从Docker Hub上拉取。支持私人登记。
    当使用命令docker pulldocker run时,对应的镜像将从配置好的登记处拉取。当使用docker push命令时,image将会被推送到配置好的登记处。

  • Docker objects
    使用docker过程中涉及的images,containers,networks,volumes,plugins和其他对象均属于docker的对象范围

    Docker images(镜像)
    image是一个只读的模板,带有创建container的指令。通常,一个image是基于另一个image,有可能需要安装一些额外的内容。比如,当你构建基于ubuntu的image时,仍然需要安装Apache网页服务器和应用等。
    可以使用自己的image,也可以使用别人在登记处公开的image。
    创建自己的image,需要创建一个包含简单语法的Dockerfile,这些语法定义了创建和运行image的步骤。Dockerfile中的每一条指令在image中创建一个层(layer)。当改变Dockerfile,重建image时,只有那些修改过的层会被重建。
    image包含容器的文件系统,也包含了运行应用程序所需的一切——依赖、配置、脚本、二进制文件等。

    Docker containers(容器)
    container是image的可执行实例,可以使用Docker API或CLI创建,启动,停止,移动,删除一个container;也可以将一个container链接到另一个或多个网络,赋予其存储,或者创建一个基于它当前状态的image
    默认情况下,container之间是相对隔离的。用户可以控制container之间的网络,存储,或者其他来自其他container或主机的子系统。
    container是由它所属的image和用户个人配置所定义,因此当一个container被移除,任何对该状态作的改变会消失,因为没有保存在存储中。
    container可以在本地机器、虚拟机上运行,也可以部署到云端;是可移植的。
    container使用隔离的文件系统,彼此隔离并运行自己的软件、二进制文件和配置。

通过仓库分享image

通过网络仓库的方式分享已创建的Docker images,需要使用到Docker registry。默认的registry是Docker Hub。

  1. 第一步:创建Docker Hub账号
    如果已经有可以跳过。创建链接:创建Docker Hub账号
    经过邮箱验证后得到界面:
  2. 第二步:创建repository
    点击第一步页面中“Create a Repository”,创建一个仓库。根据存储库名字要求创建一个存储库即可。

通过打包本地image分享

「Docker」Docker教程+学习笔记相关推荐

  1. 「Apollo」Cyber RT 学习笔记

    介绍 Cyber RT是一款开源的适用于自动驾驶场景的框架 在x86/ARM64架构的Docker环境中运行CyberRT 利用CyberRT创建一个新组件 CyberRT开发者工具 CyberRT开 ...

  2. Docker基础下(学习笔记)

    5. Docker 容器数据卷 5.1 容器数据卷是什么 先来看看Docker的理念: 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的. 容器之间希望有可 ...

  3. linux磁盘符变化autofs,Linux基础教程学习笔记之Autofs自动挂载

    Linux基础教程学习笔记之Autofs自动挂载 Autofs自动挂载: yum -y install autofs vim /etc/auto.master  在文件中添加下面行 /home/gue ...

  4. 网络存储 linux 访问,Linux基础教程学习笔记28——使用Samba访问网络存储

    Linux基础教程学习笔记28--使用Samba访问网络存储 SMB用于Windows和类Linux系统直接的文件共享 安装samba client包: [root@linuxidc~]# yum i ...

  5. 无敌python爬虫教程学习笔记(一)

    python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...

  6. 无敌python爬虫教程学习笔记(二)

    系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...

  7. 黑马程序员最新版JavaWeb基础教程-学习笔记

    da@黑马程序员最新版JavaWeb基础教程-学习笔记 day06-HTML&CSS HTML HTML(HyperTest Markup Language):超文本标记语言 是一门语言,所有 ...

  8. 【从零开始的大数据学习】Flink官方教程学习笔记(一)

    Flink官方教程学习笔记 学习资源 基础Scala语法 Scala数据结构专题 声明变量 代码块 函数(function) 方法(methods) Traits (接口) class(类) tupl ...

  9. 廖雪峰Git教程学习笔记

    廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...

  10. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

最新文章

  1. SpringMVC和mybatis的框架
  2. 数据库元数据数据字典查询_3_列出给定表的基本信息
  3. dalvik Java类库中本地类
  4. Linux环境下Android开发环境的搭建
  5. c语言最小点对问题_C语言教程(一):程序开发理论基础!
  6. 从零开始学产品第六篇:更强大的测试,自动化测试和性能测试
  7. linux mysql异机备份_Linux环境下oracle数据库Rman备份异机恢复
  8. 调试器工作原理--CPU软件断点/硬件断点/单步执行标识
  9. 毕淑敏:接纳自卑,感悟幸福
  10. [Android] Android 锁屏实现与总结 (一)
  11. 5.3使用自定议的测试数据库文件
  12. eclipse 配置多个tomcat
  13. 让计算机工作起来教学反思,计算机教学反思
  14. 拓端tecdat|SARIMA,神经网络,RNN-LSTM,SARIMA和RNN组合方法预测COVID-19每日新增病例
  15. ContextCapture(Smart3D)资源汇总
  16. 面试必备 | 机器学习这十大算法你确定会了吗?
  17. WordPress云解析HTML5播放器
  18. CVPR21-无监督异常检测《CutPaste:Self-Supervised Learning for Anomaly Detection and Localization》
  19. 使用python脚本将word文档转txt
  20. HTML5的绘图步骤——示例绘制火柴人

热门文章

  1. php中的类 对象的方法的区别,php中类和对象的区别是什么
  2. Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)(二)
  3. 粒子群PSO优化算法学习笔记 及其python实现(附讲解如何使用python语言sko.PSO工具包)
  4. wxWidgets:wxShowEvent类用法
  5. wxWidgets:wxAny类用法
  6. wxWidgets:绘制自定义控件
  7. boost::units模块实现测试数量之间的转换的测试程序
  8. boost::mutex相关的测试程序
  9. boost::quick_exit相关的测试程序
  10. boost::set_union相关的测试程序