美文网首页
docker 基础一

docker 基础一

作者: 黄昏故梦陈 | 来源:发表于2018-06-07 21:11 被阅读0次

    本文为docker系列教程的第一篇,主要阐述docker的概念以及一些主要应用场景。本文观点大多数来自docker官方文档,本人不对其正确性负责,由于笃信本文所述内容造成的一切损失与作者无关

    纲要

    1. 创建docker环境
    2. 创建一个容器并运行
    3. 扩展你的应用使其能够运行多个容器
    4. 通过云发布你的应用
    5. 为应用创建数据库服务
    6. 生产环境的部署

    基本概念

    docker

    docker是一个为开发者以及系统管理员提供的以容器的方式开发、部署以及运行产品的平台。使用容器技术进行产品的部署并不是什么新鲜事物,但是如docker这般简易方便的容器管理平台确实前无古人。
    容器技术越来越受欢迎的原因有以下几点:

    • Flexible:即使再复杂的产品也能够被容器化
    • Lightweight:容器之间实现了对主机资源的平衡与共享
    • Interchangeable: 你可以利用容器快速的部署及更新你的产品
    • Scalable: 你可以增强以及自动分分配的容器的副本
    • Stackable: 你可以直截了当地将多个服务进行叠加


    Images and containers

    一个容器通过运行一个image来开始自己的工作。一个image呢,指的是一个可执行的包文件,这个image包含了运行产品所需的一切--代码、运行环境、库、环境变量以及配置文件

    一个容器代表一个image包在某个运行环境下的一个实例--即当image被执行后在计算中内存区域的具体状态(一个有状态的image或者用户进程)。你可以通过执行 docker ps 来查看当前运行的容器列表。

    Containers and virtual machines

    一个运行在linux环境下的容器,与同一主机下的其他容器共享计算资源。其以一种不连续进程的方式运行,除执行本身任务外不会占据任何多的内存,因而实现了轻量化。
    相反,运行在虚拟机中的容器由于要通过hypervisor来调用主机的资源,通常情况下会占用一些额外的资源

    Perpare your Docker environment
    #查看版本
    docker --version
    Docker version 17.12.0-ce, build c97c6d6
    #查看详情以及当前状态
    docker info
    Containers: 0
     Running: 0
     Paused: 0
     Stopped: 0
    Images: 0
    Server Version: 17.12.0-ce
    Storage Driver: overlay2
    ...
    

    在安装docker后,如果涉及到权限问题,请查阅https://docs.docker.com/install/linux/linux-postinstall/

    • 测试docker能否正常工作
    docker run hello-world
    
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    ca4f61b1923c: Pull complete
    Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    ...
    
    #列表展示当前下载的image
    docker image ls
    #列表展示当前容器列表
    docker container ls --all
    

    概要和清单

    #列表展示docker命令
    docker
    docker container --help
    
    # 展示docker版本以及其他信息
    docker --version
    docker version
    docker info
    
    # 执行docker image
    docker run hello-world
    
    # 列表展示docker的image
    docker image ls
    
    #列表展示docker的容器
    docker container ls
    docker container ls --all
    docker container ls -aq 
    

    结论

    容器化使得持续开发/持续集成能够无缝衔接,例如

    • 产品本身没有系统依赖
    • 更新可以推送到发布产品的任何一个部分
    • 优化了资源密集程度
      使用docker,扩展你的产品只需一个新的可执行文件,而不需要运行笨重的虚拟机。

    相关文章

      网友评论

          本文标题:docker 基础一

          本文链接:https://www.haomeiwen.com/subject/vfomsftx.html