首页 > 其他分享 >01 Docker基础

01 Docker基础

时间:2023-05-02 09:55:52浏览次数:39  
标签:01 sudo 基础 apt https ubuntu Docker docker

第一章 Docker基础

目录

一、Docker简介

在这一部分我们主要讲两个方面: docker是什么、docker特点。

1 Docker是什么?

  1. Docker是什么?

    docker的中文解释是码头工人

  2. 官方解释

    Docker是一个开源的容器引擎,它基于LCX容器技术,使用Go语言开发。

    源代码托管在Github上,并遵从Apache2.0协议。

    Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。

    Docker就是一种快速解决生产问题的一种技术手段,开发,运行和部署应用程序的开放管理平台。

  3. 使用方式

    • 开发人员能利用docker开发和运行应用程序
    • 运维人员能利用docker部署和管理应用程序
  4. Docker与生活场景对比



  5. 单独理解容器的概念:

    Docker提供了在一个完全隔离的环境中打包和运行应用程序的能力,这个隔离的环境被称为容器。

    由于容器的隔离性和安全性,因此可以在一个主机(宿主机)上同时运行多个相互隔离的容器,互不干预。

2 为什么使用Docker?

Docker使您能够将应用程序与基础架构分开,以便您可以快速交付软件。

借助Docker,您可以像管理应用程序─样管理基础架构。

通过利用Docker的方法快速进行运输,测试和部署代码,可以显著缩短编写代码和在生产环境中运行代码之间的延迟。

例如:开发人员在本地编写代码,可以使用Docker同事进行共享,实现协同工作。

使用Docker开发完成程序,可以直接对应用程序执行自动和手动测试。

当开发人员发现错误或BUG时,可以直接在开发环境中修复后,并迅速将它们重新部署到测试环境进行测试和验证。

利用Docker开发完成后,交付时,直接交付Docker,也就意味着交付完成。后续如果有提供修补程序或更新,需要推送到生成环境运行起来,也是一样的简单。

Docker主要解决的问题:

  • 保证程序运行环境的一致性;

  • 降低配置开发环境、生产环境的复杂度和成本;

  • 实现程序的快速部署和分发。

3 Docker的架构与结构

架构图:

Docker是采用了(c/s)架构模式的应用程序Client

  • dockerCLl:客户端docker命令行

  • REST APl:一套介于客户端与服务端的之间进行通信并指示其执行的接口

  • Server docker daemon:服务端dacker守护进程等待客户端发送命令来执行

Docker的四大核心技术

  • IMAGE-镜像
  • CONTAINER-容器
  • DATA VOLUMES-数据卷
  • NETWORK-网络

结构图:

  • Docker客户端(Docker Client)

    Docker客户端(Docker Client)是用户与Docker进行交互的最主要方式。当在终端输入docker命令时,对应的就会在服务端产生对应的作用,并把结果返回给客户端。Docker Client除了连接本地服务端,通过更改或指定DOCKER_HOST连接远程服务端。

  • Docker服务端(Docker Server)

    Docker Daemon其实就是Docker 的服务端。它负责监听Docker API请求(如Docker Client)并管理Docker对象(Docker Objects),如镜像、容器、网络、数据卷等

  • Docker Registries

    俗称Docker仓库,专门用于存储镜像的云服务环境。

    Docker Hub就是一个公有的存放镜像的地方,类似Github存储代码文件。同样的也可以类似Github那样搭建私有的仓库。

  • Docker对象(Docker Objects)

    镜像:一个Docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件等。【超精简版本:比如ubuntn只有80多M

    标签:01,sudo,基础,apt,https,ubuntu,Docker,docker
    From: https://www.cnblogs.com/yangyi215/p/17367378.html

相关文章

  • java(1)基础下载安装以及path环境变量配置
    一.java1.java语言跨平台原理(1):这里JVM指的是Java虚拟机,而Java虚拟机根据自己的需求下载不同的版本,有Window版JVM,macOs版JVM,linux版JVM。大概就是在需要运行JAVA应用程序的操作系统上,安装一个与操作系统相对应的java虚拟机(JVM)。2.JRE和JDK(1.)JRE(JavaRuntimeEnvironment)是j......
  • ubuntu20安装docker、redis、mysql及部署net6应用
    一、更新系统软件包索引sudoaptupdate二、安装dockersudoaptinstalldocker.io三、在docker中安装Mysql拉取mysql镜像dockerpullmysql:latest查看镜像dockerpullmysql:latest运行容器dockerrun-itd-p3306:3306-eMYSQL_RO......
  • Dockerfile基础命令及简单应用
    Dockerfile从dockercommit的学习中,我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解......
  • 每日总结2023-05-01
    今天继续学习了Android中的kotlin语言初始Java语言mportjava.util.ArrayList;importjava.util.List;publicclassRepository{privatestaticfinalRepositoryINSTANCE=null;privateList<User>users=null;publicstaticRepositorygetInstan......
  • 蛮力法解01背包问题
    #include<iostream>usingnamespacestd;structthing{intweight;//物品重量intvalue;//物品价值intnumber;//物品序号};thingthings[10];//假设最多有10个物品intthingsCount;//物品数量intbagSize;//背包容量intmaxTotalValue;//最大总重量......
  • 回溯法解决01背包问题
    #include<iostream>usingnamespacestd;structthing{intweight;//物品重量intvalue;//物品价值intnumber;//物品数量};thingthings[10];//假设最多有10个物品intthingsCount;//物品数量intbagSize;//背包容量intmaxTotalValue;//最大总重量......
  • 摄影-230501
    ......
  • 2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1
    2023-05-01:给你一个整数n,请你在无限的整数序列[1,2,3,4,5,6,7,8,9,10,11,...]中找出并返回第n位上的数字。1<=n<=2^31-1。输入:n=11输出:0解释:第11位数字在序列1,2,3,4,5,6,7,8,9,10,11,...里是0,它是10的一部分。答案2023-05-01:该......
  • 分支限界法解01背包问题
    #include<iostream>usingnamespacestd;#defineMAX100structNode{intisVisit;//记录节点是否被扩展doublew;doublev;intlevel;//记录节点所在的层次doubleub;//上界Node*parent;//父节点};doublemaxValue=0;Node*PT[MAX......
  • P5336 [THUSC2016]成绩单
    题意:期末考试结束了,班主任L老师要将成绩单分发到每位同学手中。L老师共有\(n\)份成绩单,按照编号从\(1\)到\(n\)的顺序叠放在桌子上,其中编号为\(i\)的的成绩单分数为\(W_i\)。成绩单是按照批次发放的。发放成绩单时,L老师会从当前的一叠成绩单中抽取连续的一段,让这......