Docker笔记(个人向) 简述

1. 简介
  • Docker是一个用于构建build运行run传送share应用程序的平台。
  • 它可以帮助我们将应用程序打包成一个个标准化的"箱子",再运送到任何需要的设备中。
  • Docker可以使应用程序和它运行所需要的各种依赖包、第三方软件库、配置文件等打包在一起,以便在任何环境内应用程序都可以正确地运行

Q : 为什么要用Docker运输应用程序呢?
A : 例如我们要搭建的一个网站,采用前后端分离机构。前端用流行的Vue框架来构建界面,后端用JavaSpringBoot微服务框架来提供各种服务和接口,然后使用MySQL来存储数据。那么我们需要:

  1. 安装NodeJS环境
  2. 安装各种npm运行所需要的依赖包
  3. 安装Java运行所需要的环境
  4. 安装各种第三方的依赖包(如SpringBoot微服务依赖包)
  5. 安装MySQL数据库
  6. 配置环境变量PATH,启动脚本服务
  7. 安装配置Redis缓存
  8. 安装配置Nginx负载均衡
  9. ……
    而通过Docker,我们可以把上述的安装配置标准化分割再打包,就可以顺利的把开发环境的内容迁移到测试环境,不需要担心出错和浪费时间。

Q : Docker和虚拟机之间的区别
A : 虚拟机是通过虚拟化技术来实现的。虚拟化将物理资源虚拟化成多个逻辑资源,将一台物理服务器虚拟成多个逻辑服务器(可以运行不同的操作系统和使用着不同的数据)的技术。这些不同的逻辑服务器彼此之间是相互隔离的,可以独立运行。虚拟机从某种程度上实现了服务器的整合,可以将一台服务器的资源充分利用,用一套设备实现多台服务器的功能。但是受制于硬件条件,这些虚拟机往往运行速度不快,启动也相当慢,通常需要几分钟甚至几十分钟的时间。
在这里插入图片描述
而对于Docker的主要实现思路容器化来说(Docker其实是容器化技术的一种解决方案和平台),
在这里插入图片描述
容器化不用安装另外的操作系统,只需要使用原来的操作系统运行部分对应功能即可,故占用更少资源、效率大大提高,且支持更多的容器Container同开

2. 基本原理和概念
  • Docker主要用到镜像容器仓库这几种元素。
  1. 镜像是一个只读的模板,它可以用来创建容器
  2. 容器Docker运行实例,它提供了一个独立可移植的环境,我们可以在这个环境中运行应用程序。

镜像和容器的关系就像是JavaC++中的类和实例的关系一样。
在这里插入图片描述

  1. 仓库是用来存储Docker镜像的地方。最流行和最常用的仓库就是Dockerhub。它是一个公共的Docker仓库,用来集中存储和管理Docker镜像,类似于存放项目和文件的Github。我们可以在这里下载和上传自己或他人的镜像文件。
  • Docker使用Client-Sever架构模式,Docker ClientDocker Daemon之间通过Socket或者RESTful API进行通信。
  • Docker Daemon就是服务端的守护进程,它负责管理Docker的各种资源。
  • Docker Client负责向Docker Daemon发送请求,后者接收到请求之后进行处理,将结果发还给Docket Client。此时,Docker Daemon作为一个后台进程,用来接收并处理来自于Docker客户端的请求,将结果返回给客户端,然后就可以在终端中看到执行结果了。
3. Docker的安装配置
  1. Docker官网下载安装包然后双击安装即可
  2. 安装完毕之后记得启动Docker,否则之后的操作将无法进行
  3. Windows要启动Docker,需要先打开设置Settings,搜索Hyper找到启用或关闭Windows功能点击,勾选Hyper-V之后按照提示重启电脑就可以打开Hyper-V功能。这个功能是Docker运行的前提。
  4. Docker启动之后,会在状态栏(右下角)看到一个小鲸鱼的图标,这是Docker的图标,显示已经启动了。
  5. 启动之后,可以在终端或者shell中使用Docker的各种命令了
4. Docker常见命令
  • docker version:查看Docker的版本信息

一般情况下能同时看到ClientServer。如果你只看到Client说明你的Docker没有启动,只有启动后才能看到。

  • docker info: 查看docker系统信息
  • docker [command] --help: 查看Docker帮助文档
  • docker login\logout: 登录\退出DockerHub
5. 容器化
  • containerization,顾名思义就是将应用程序打包成容器,然后在容器中运行应用程序的过程。
  • 对应用程序的容器化分为以下步骤:
    1. 创建一个Dockerfile,来告诉Docker构建应用程序镜像。
    2. 使用Dockerfile构建镜像
    3. 使用镜像创建和运行容器

Dockerfile是一类文本文件,里面包含了一条条的指令。指令用来Docker如何来构建镜像。这个镜像中包含我们应用程序的所有命令(各种依赖、配置环境、运行应用程序所需要的内容).一般来说,我们会在项目的根目录下创建叫Dockerfile文件,用于在这个文件中写入所需要的各种指令。

  • 如何编写Docker

    1. 新建文件夹,命名与Docker相关
    2. 编辑器打开文件夹,创建index.js的文件,在文件中输入console.log("文本内容"),可以在终端中输入node index.js打开

    NodeJS是一个运行时环境,它可以让我们在浏览器之外的地方运行Javascript的代码

    1. 创建Dockerfile(无拓展名),把运行步骤(程序)写入到Dockerfile中:
    1. 先指定一个基础镜像,例如先指定一个操作系统镜像,如FROM node:14-alpine,其中14是版本号,alpineLinux轻量级发行版的名称。毕竟镜像是按层次结构来构建的
    2. 将应用程序复制或导入文件中,可以用COPY source dest的格式完成复制。其中的source是应用程序名,在根目录中相对于Dockerfile的地址
    3. CMD["可执行程序的名字","可执行程序接收到的应用程序"] 或者 CMD 可执行程序名 应用程序地址
    4. 接着我们可以用docker image ls查看根目录中的镜像信息
      • docker run 应用程序名的方法测试运行镜像文件
    1. 剩下的工作交给Docker来自动完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值