zoukankan      html  css  js  c++  java
  • 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 删除与容器关联的卷

  • 相关阅读:
    vector
    vector-back
    vector-back
    vector-begin
    vector-begin
    vector-at
    vector-at
    Vector-assign
    Vector-assign
    Vector-Constructors
  • 原文地址:https://www.cnblogs.com/ppzhang/p/10265603.html
Copyright © 2011-2022 走看看