Docker基础

孤街醉人 提交于 2020-01-01 13:00:01

Docker概述

  docker基本组成

    •  docker client:  客户端
    •    docker deamon:守护进程
    •    docker image:   镜像
    •    docker container: 容器
    •    docker registry:     镜像仓库   

  docker和虚拟机比较

    

 

  docker运用场景:

    •  应用程序打包和发布
    •    应用程序隔离
    •    持续集成
    •    部署微服务
    •    快速搭建测试环境
    •    提供paas环境(平台既服务)    

镜像概述:

  镜像是什么?

    • 一个分层存储的文件
    • 一个软件的环境
    • 一个镜像可以创建N个容器
    • 一种标准化的交付
    • 一个不包含Linux内核而又精简的Linux操作系统
    镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history <ID/NAME> 查看镜像中各层内容及大小,每层 对应着Dockerfile中的一条指令。Docker镜像默认存储   在/var/lib/docker/\<storage-driver\>中。

 

    (ps:直白来讲,镜像就是一个环境,这个环境可能是单独的一个软件运行环境,也有可能是一整套很多相互依赖的软件运行环境。实际生产过程中就是将整个代码加环境打包成镜像,让后在容器中运行。)

  

  镜像从哪里来?

    Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。 地址:https://hub.docker.com/explore

    配置镜像加速器:https://www.daocloud.io/mirror
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

 

    为了符合自己的业务需求,大多数时候镜像还是需要自己来制作。

  镜像和容器的联系:

    

    如图,容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时, 会先从镜像里要写的文件复制到容器自己的文件系统中(读写层)。 如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。所以无论多 少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作 的,并不会修改镜像的源文件,这种方式提高磁盘利用率。 若想持久化这些改动,可以通过docker commit 将容器保存成一个新镜像

  常用镜像管理命令:

  

容器概述

  创建容器常用选项:

    

  容器资源限制:

  

    示例:
    内存限额:
    允许容器最多使用500M内存和100M的Swap,并禁用 OOM Killer:
    docker run -d --name nginx03 --memory="500m" --memory-swap=“600m" --oom-kill-disable nginx

    CPU限额:

    允许容器最多使用一个半的CPU:
    run -d --name nginx04 --cpus="1.5" nginx 允许容器最多使用50%的CPU:
    docker run -d --name nginx05 --cpus=".5" 

  常用管理容器命令:

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!