奇怪的知识又增加了2——软件部署 & Docker

部署

  1. 什么是部署
    一般,软件从研发到用户使用包括开发和部署两个环节,其中,部署就是让写的程序或者开发的产品在某一个环境下跑起来。按环境的不同,可以分为远程部署和本地部署。
    解决问题:为什么在我的电脑上跑得起来,放另一台电脑就不行?

  2. 怎么去部署
    从源代码生成软件包 —–> 软件包放到某一环境 —–> 配置目标环境使得软件运行。
    (啊,乍一看,好像废话)

Docker:Build once,Run anywhere

  1. 简单/通俗:如何通俗解释Docker是什么? – 周宇刚的回答 – 知乎
  2. 生动/形象:如何通俗解释Docker是什么? – 小枣君的回答 – 知乎
  3. Docker包括镜像、容器和仓库三个重要的概念,以C++的角度,镜像可以看作类,容器是对象,仓库就是库。Docker是管理这些内容的工具。

    镜像(Image)
    Docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。但没有动态的数据,是只读的。
    容器(Container)
    Docker容器与镜像几乎一样,但是可读写的。
    仓库(Repository)
    Docker Registry(仓库注册服务器)负责存储和分发镜像,每个Registry可以有多个Repository,每个Repository可以包含多个标签(Tag),每个标签对应着一个镜像。

  4. 虚拟机与Docker:Docker的容器技术更为轻量化。
虚拟机 Docker
隔离级别 操作系统级 进程级
启动时间 分钟级 秒级
镜像存储 GB~TB KB~MB
集群规模 上百 上万
  1. Docker的拉取、运行、退出

    sudo docker login xxxxx     # 登陆
    sudo docker pull yyyyy:tag  # 拉取
    sudo docker run -ti yyyyy   # 运行
            ## -t       tty
            ## -i       interactive
            ## --net        Connect a container to a network
            ## --ipc        IPC mode to use
            ## --device Add a host device to the container
            ## --privileged Give extended privileges to this container
            ## -v       Bind mount a volume 映射共享路径
    exit    # 退出
  2. 本地docker提交保存
    docker运行后的容器内,安装了一些包,在之后启动时,为避免重复安装的过程,可以保存提交容器是,生成一个新的镜像的标签,下次启动时,选择对应标签启动
    查看容器ID  docker ps
    查看仓库名   docker images
    提交镜像保存  docker commit 容器ID 仓库名:新标签

Leave a Reply

Your email address will not be published. Required fields are marked *