Docker基础

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" 

  常用管理容器命令:

  

关于容器的命令

  查看容器:docker ps -a

  查看哪些是停止的容器:docker ps -a -p 

  启动一个容器:docker start 容器ID

  创建启动一个容器:docker run

  创建一个容器起别名并分配一个为终端:docker run -name mysql_test -it mysql /bin/bash

  停止容器:docker stop 容器ID

  进入容器:docker exec -it 容器ID

  删除容器:docker rm [OPTIONS] 容器名

    其中options有三种类型:

      -f :通过SIGKILL信号强制删除一个运行中的容器

      -l :移除容器间的网络连接,而非容器本身

      -v :-v 删除与容器关联的卷

原文地址:https://www.cnblogs.com/ppzhang/p/10265603.html