设为首页 收藏本站
查看: 1009|回复: 0

[经验分享] 详解Docker架构、镜像、容器及资源限制

[复制链接]

尚未签到

发表于 2019-2-21 08:49:01 | 显示全部楼层 |阅读模式
Docker概述
  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

   

Docker核心



  • 1.镜像(Image):类似与虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统。
  • 2.容器(Container):类似于一个轻量级的沙箱子(因为Docker是基于Linux内核的虚拟技术,所以消耗资源十分少),Docker利用容器来运行和隔离应用。
  • 3.仓库(Repository)类似与代码仓库,是Docker集中存放镜像文件的场所。



Docker特点



  • 1.简化部署配置 极大提高工作效率。
  • 2.轻量级 可移植。
  • 3.启动和停止可以在秒级实现。
  • 4.节省硬件资源。
  • 5.直接在在操作系统层面上实现的虚拟化。


Docker安装


  •   配置仓库

    # vim /etc/yum.repos.d/ghostcloud.repo
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
  •   安装Docker

    # yum install docker-engine -y
    # systemctl start docker                    //启动docker
    # systemctl enable docker.service    //设置开机自启动
    # docker version                      //查看版本
    # docker info    //查看docker基本信息
   

Docker镜像操作


  •   搜索并获取镜像

    # docker search cobbler      //搜索关键字cobbler
    # docker pull jasonlix/docker-cobbler   //下载搜索出的结果

       

  •   查看镜像

    # docker images   //查看所有镜像  (也可以单独查询 后面跟仓库名称和标签)
    # docker inspect 2211e1f06c4e    //指定ID号查看 详细信息
    # docker tag jasonlix/docker-cobbler cobbler:cobbler    //添加新名称  新标签 (图中第三个)

   


  • 删除镜像
  •   删除之前确保没有被容器使用,若有容器使用需要先删除容器。

    # docker rmi cobbler:cobbler  //删除  注:当镜像有多个标签时只是删除标签
  •   存出镜像和载入镜像

    # docker save -o cobbler jasonlix/docker-cobbler    //将本地镜像存为文件cobbler
    # docker load < cobbler     //载入镜像
    或者
    # docker --input cobller   //载入镜像
       


Docker容器操作


  • 容器的创建与启动
  • -i:让容器的输入保持打开
  • -t:让Docker分配一个伪终端
  •   /bin/bash : 表示启动容器时要运行的命令

    # docker create -it jasonlix/docker-cobbler /bin/bash     //创建容器
    # docker ps -a    //查看所有容器
    # docker start 28f067a17c53       //开启容器
    # docker stop 28f067a17c53       //关闭容器

   


  • 容器的进入
  • 命令格式:docker exec -it    容器ID/名称   /bin/bash
  •   进入之前需先开启运行这个容器

    # docker start 28f067a17c53    //开始运行
    # docker exec -it 28f067a17c53 /bin/bash
   


  •   容器的导入和导出

    将A机器的容器导出
    # docker export 28f067a17c53 > cobblertar    //将容器 导出命名为cobblertar   (指定导出容器ID )
    在B机器上导入
    # cat cobblertar | docker import -cobbler:test    //import导入后 生成镜像名cobbler:标签test
   


  • 容器的删除
  •   要删除正在运行的容器可以添加 -f 选项强制删除,建议先关闭容器在删除。

    # docker rm 28f067a17c53    //删除时指定 ID
  •   后台持续运行容器

    # docker run -d jasonlix/docker-cobbler /usr/bin/bash -c "while true;do echo hello;done"

  注意:docker run  ,等于执行了docker create  ,在执行docker start 。就是说:在使用docker run创建容器的时候 如果检查镜像,若没有镜像,会从公共仓库下载,然后在创建容器,运行容器。
#docker run -itd --name c7 --network bridge --ip 192.168.200.132 centos:latest /bin/bash
下载资源    名字c7     网卡桥接   本地IP  镜像仓库centos 最新 latest

   

Docker资源限制


  •   限制CPU使用速率

    # docker run --cpu-quota 20000 centos(容器名)    //cpu的使用率限定为20%
  •   按比例分享CPU

    # docker run --cpu-shares 1024 centos
  • 限制CPU内核使用
  •   使用 --cpuset-cpus 后面跟 0,1,2,3    (0表示第1个内核,1表示第2个内核.......)

    # docker run --cpuset-cpus 0,1 centos       //容器centos独享 第1和第2个内核
  •   限制内存使用

    # docker run -m 512m centos      //限制cents容器内存512M
  • 对blkio限制
  • 对容器的读写限制
  •   例如:限制容器的/dev/sda1 的写入ipos为1MB

    # docker run --device-write-bps /dev/sda1:1mb centos




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675121-1-1.html 上篇帖子: Docker镜像无法被删除的解决方法 下篇帖子: 【Docker篇之一】Docker镜像及容器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表