zoukankan      html  css  js  c++  java
  • Docker

    1、项目部署的问题

    大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:

    1. 依赖关系复杂,容易出现兼容性问题
    2. 开发、测试、生产环境有差异

    2、Docker如何解决依赖的兼容问题的?

    1. 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
    2. 将每个应用放到一个隔离容器去运行,避免互相干扰

     3、Docker如何解决不同系统环境的问题?

    1. Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包
    2. Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行

    4、Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?

    Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像

    Docker应用运行在容器中,使用沙箱机制,相互隔离

    总结:

    Docker是一个快速交付应用、运行应用的技术:
        可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
        运行时利用沙箱机制形成隔离容器,各个应用互不干扰
        启动、移除都可以通过一行命令完成,方便快捷

    5、镜像和容器

    镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

    容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。

    6、安装Docker

    https://www.aliyundrive.com/s/4J5QcWtV9Bi

    总结:

    什么是Docker:
        帮助我们快速构建应用镜像、交付应用、运行应用的技术
    什么是镜像:
        将应用程序及其依赖、环境、配置打包在一起就是镜像
    什么是容器:
        镜像运行起来就是容器,一个镜像可以运行多个容器
    Docker工作流:
        构建自定义镜像或者从DockerRegistry拉取镜像
    根据镜像创建容器,并运行

    7、镜像操作命令

     总结:

    镜像操作有哪些?

    1. docker images
    2. docker rmi
    3. docker pull
    4. docker push
    5. docker save
    6. docker load

    8、容器相关命令

     总结:

    docker run命令的常见参数有哪些?
        --name:指定容器名称
        -p:指定端口映射
        -d:让容器后台运行
    查看容器日志的命令:
        docker logs
        添加 -f 参数可以持续查看日志
    查看容器状态:
        docker ps
    查看容器状态:
        docker ps 
        添加-a参数查看所有状态的容器
    删除容器:
        docker rm
        不能删除运行中的容器,除非添加 -f 参数
    进入容器:
        命令是docker exec -it [容器名] [要执行的命令]
        exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的

    9、数据卷

    数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

    数据卷操作的基本语法如下:

      docker volume [COMMAND]

    docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

      create 创建一个volume

      inspect 显示一个或多个volume的信息

      ls 列出所有的volume

      prune 删除未使用的volume

      rm 删除一个或多个指定的volume

    总结:

    数据卷的作用:
        将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全
    数据卷操作:
        docker volume create
        docker volume ls
        docker volume inspect
        docker volume rm
        docker volume prune

    10、挂载数据卷

    在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录

     总结:

    数据卷挂载方式:
        -v volumeName: /targetContainerPath
        如果容器运行时volume不存在,会自动被创建出来

    11、数据卷挂载的方式对比

     总结:

    docker run的命令中通过 -v 参数挂载文件或目录到容器中:
        -v volume名称:容器内目录
        -v 宿主机文件:容器内文件
        -v 宿主机目录:容器内目录
    数据卷挂载与目录直接挂载:
        数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找
        目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查看

    12、Dockerfile自定义镜像

    镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。

    具体参考:https://www.aliyundrive.com/s/A39Z84EZuzt

    13、DockerCompose

    具体参考:https://www.aliyundrive.com/s/A39Z84EZuzt

    14、Docker镜像仓库

    具体参考:https://www.aliyundrive.com/s/A39Z84EZuzt

  • 相关阅读:
    .NET 中验证控件的使用
    Input(file) 控件的简单使用!
    dropdownlist 、listbox 与 panel的使用
    Applicatin、 server、 session 、cookies对象的简单使用方法
    三天晚上看了24集 央视版《神雕侠侣》 还不错
    推荐一本 asp.net(c#)学习的好书
    .net 中广告控件 AdRotator 的使用(xml)
    Asp.net 1.0 升级至 ASP.NET 2.0十个问题总结
    多线程操作 同一个textbox. yi
    博客开张第一贴!谢谢!大伙多多关照!谢谢. yi
  • 原文地址:https://www.cnblogs.com/sun-10387834/p/15692850.html
Copyright © 2011-2022 走看看