docker容器

运行容器

 后台运行:run的时候加-d

 进入容器的方法(具体命令查看https://blog.csdn.net/qq_37339132/article/details/104417765):

     1.docker attach:通过docker attach可以到容器终端

      

     注:可通过ctrl+p+q组合键退出attach终端,但是之前run的时候必须使用-it参数

      2.docker exec

       

       说明:

      (1)-it以交互的方式打开pseudo-TTY,执行bash,其结果就是打开了一个bash终端

      (2)进入到容器中,容器的hostname就是其“短ID”

      (3)可以像普通linux一样执行命令

      (4)执行exit退出

         3.attach和exec的区别    

      (1)attach直接进入容器启动命令的终端,不会启动新的进程

      (2)exec则是在容器中打开新的终端,并且可以启动新的进程

      (3)如果想直接在终端中查看启动命令的输出,用attach;其他情况是用exec

      (4)当然,如果只是为了查看启动命令的输出,可以查看docker logs命令

stop/start/restart容器

 容器在host中实际上是一个容器,docker stop命令本质上是向该进程发送一个SIGTERM信号,如果想快速停止容器,可以使用docker kill命令,其作用是向容器发送SIGKILL信号

 处于停止状态的容器,可以通过docker start重新启动

 restart可以重启容器,其作用就是执行docker stop和docker start。容器可能因为某种错误而停止运行。对于服务类容器来说,通常希望能够自动重启。启动时设置--restart就可以达到效果。--restart=always意味着无论容器因为何种原因退出(包括正常退出),都立即重启。该参数还可以为--restart=on-failure:3,意思是如果启动进程退出码非0,则重启容器,最多重启3次

pause/unpause

 暂停容器工作可以使用pause,处于暂停状态的容器不会占用CPU资源,直到通过docker unpause恢复运行

 

删除容器

 使用docker rm删除,docker rm依次可以指定多个容器,如果希望删除所有已退出的容器,可以执行以下命令docker rm -v $(docker ps -aq -f status=exited)

资源限制

 一个docker host上运行若干个容器,每个容器都需要CPU、内存和IO资源,对于KVM等虚拟化技术,用户可以控制分配多少CPU、内存资源给每个虚拟机,对于容器,docker也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个host性能

 内存限额(包括物理内存和swap)

     docker通过两组参数来控制容器内存的使用量:

      (1)-m或--memory:设置内存的使用限额,例如:2GB

      (2)--memory-swap:设置内存+swap的使用量限制

       当执行以下命令时:

       

      其含义是允许容器最多使用200m内存和100m的swap。默认情况下,上面两组的参数为-1,即对容器内存和swap没有限

 cpu限额

     默认情况下,所有容器可以平等的使用host CPU资源没有限制。docker可以通过-c或--cpu-shares设置容器使用CPU权重。如果不指定,默认是1024。与内存限额不同,通过-c设置的cpu share并不是CPU资源的绝对值,而是一个相对的权重值。某个容器最终能分配到的CPU资源数量取决于它的cpu share占用容器cpu share总和的比例

     换句话说:通过cpu share可以设置容器的优先级,比如以下两个容器

      

     当两个容器都需要使用CPU资源时,上头的可以得到的是下面的两倍。需要特别注意的是,这种按权重分配CPU只会发生在CPU资源紧张的情况下。如果container_A处于空闲状态,这时,为了充分利用CPU资源,container_B也可以分配到所有的CPU资源

 Block IO带宽限制

      Block IO是另一种可以限制容器使用的资源。其指的是磁盘的读写,docker可以通过设置权重、限制bps和iops的方式控制容器读写磁盘的带宽

      1.block io权重

       默认情况下,所有容器能平等地读写磁盘,可以通过设置--blkio-weight参数来改变容器block io的优先级,--blkio-weight与--cpu-shares类似,设置的是相对权重值,默认为500

       

      2.限制bps和iops

       bps是每秒读写的数据量,iops是每秒IO的次数

       可通过以下参数控制容器的bps和iops:

              --device-read-bps:限制读某个设备的bps

              --device-write-bps:限制写某个设备的bps

              --device-read-iops:限制读某个设备的iops

             --device-write-iops:限制写某个设备的iops

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值