Docker---容器引擎

                                                   (实验准备虚拟机一台:桥接网卡)

1.docker:
linux容器里运行的开源小型轻量级虚拟机

2.历史:
概念来自于2000年,但2013才真正成熟,由Docker  inc公司发表和推广,现在加入Linux基金会,源码在github.com/docker维护发布,官方文档www.docker.com

3.地位:
近年来,最受追捧的新技术之一,在中国2015年开始盛行,各大公司都开始支持和推广docker

4.理念:
创建、运输、处处运行,非常好用的便于移植的集装箱式的容器虚拟化,一次封装,到处运行

5.docker与传统虚拟机的区别
docker优点:
轻量、快速启动和停止(秒级)、并发性能强(一台物理机并行启动上千台docker)、计算能力损耗小、资源限制
docker不足:
不适合配置大型安全环境,比如:数据库

6.docker的核心概念
镜像:类似于vmware的快照,只读不可写,可以看成一个安装某个应用程序的Linux环境
容器:镜像的运行实例,可以启动、停止、删除,容器之间是隔离的,互不可见,互不影响,保证各自的相对安全,类似于多台vmware虚拟机。
仓库:统一集中保存镜像的地方,分为公有库(dockerhub)和私有库(自己创建)

7.docker的版本
docker.io:Centos7默认支持,早期
docker-ce:  社区版
docker-ee:  企业版

1号机#

#桥接网络例如

#ifdown ens33;ifup ens33

#ifconfig ens33

#systemctl stop firewalld

#setenforce 0

#yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

#yum -y install docker

#systemctl  start  docker \\启动
#systemctl  enable  docker  \\设为开机自动启动


#docker  version \\查看docker版本
#docker  search  dhcp                      搜索镜像(默认搜索路径:dockerhub)(下面为显示结果项)
INDEX              NAME          DESCRIPTION            STARS          OFFICIAL      AUTOMATED
索引                   镜像名             描述                         星级                  官方创建              自主创建


#docker  pull  docker.io/networkboot/dhcpd        下载镜像(时间看带宽)

#docker  images                              查看本地镜像


#docker  inspect  镜像ID号 (如12313dfs2545)             查看镜像的详细信息
#docker  tag  docker.io/networkboot/dhcpd    dhcp:dhcp          修改镜像标

#docker  images                              查看本地镜像

.#docker  rmi  dhcp:dhcp                删除镜像      或#docker  rmi  镜像ID号

#docker  images                              删除后查看本地镜像

#docker rmi docker.io/networkboot/dhcpd               (删除镜像文件所有层--操作需谨慎)

#docker  save  -o dhcp docker.io/networkboot/dhcpd    存出镜像:需要迁移镜像到其他主机

#ll -h

#docker images (查看效果)

#docker  load  --input  dhcp            把镜像文件复制到本地,载入启用

#docker load < dhcp

注册dockerhub账号并上传镜像
网址:https://hub.docker.com/signup

#docker  login        登录
用户名
密码
#docker  push  docker/dhcp:centos7.3               上传镜像:

#docker  create  -it  docker.io/networkboot/dhcpd  /bin/bash容器的创建与启动(create:创建    -i:保持容器输入打开    -t:开启一个伪终端)

#docker ps -a            查看容器运行状态-a:列车最近一次启动的容器

#docker  start  容器ID    启动容器                          (若是报错#yum -y update更新一下可以解决)

#docker ps -a            启动后查看容器运行状态

#docker run docker.io/networkboot/dhcpd /bin/bash -c ls           (创建并启动执行--一次性进程)

#docker ps -a            启动后查看容器运行状态

#docker  run  -d  docker.io/networkboot/dhcpd  /bin/bash  -c  "while  true;do  echo  ok;done;" 由镜像创建容器并运行命令:作为后台进程,持续执行(注意:-d代表后台守护进程)

#docker ps -a            启动后查看容器运行状态up为运行状态

#docker stop  (加ID号)

#docker  pa -a 查看exited为终止状态

#docker  exec  -it  容器ID  /bin/bash            进入正在运行的容器


#exit                         退出

#docker export 容器ID号>centos7dhcp               (容器的导出)

#ls -h centos7dhcp

#docker ps -a    (查看并复制一个ID号)

#docker stop ID号(上部复制的ID号)

#docker rm  容器ID号      (一般先停止后删除)

#docker ps -a           (查看是否删除)

#ls

#cat  centos7dhcp  |  docker  import  -  centos7:dhcp        (导入文件centos7dhcp为本地镜像)

#docker images | grep centos7           (查看镜像)

docker资源控制(虚拟机调cpu:4核  内存:4G)
同一台主机,运行多台容器时,会产生抢占主机硬件资源的现象,如果发生不公平事件会导致部分容器或服务停止运行,所以需要对容器配置资源限制。
Cgroup:control  group,linux内核提供的限制所使用的物理资源的机制(docker之前用的LXC),CPU、内存、blkio(块文件输入和输出)

CPU限制:docker资源控制
  前提:生成示例镜像
#docker  tag  dhcp:dhcp  centos7:dhcp1         //dchp:dhcp为原有文件:centos7:dhcp1为复制后的文件
#docker  tag  dhcp:dhcp  centos7:dhcp2
#docker  tag  dhcp:dhcp  centos7:dhcp3
#docker  tag  dhcp:dhcp  centos7:dhcp4
#docker  tag  dhcp:dhcp  centos7:dhcp5

#docker images       

        

(1)查看CPU线程
#cat  /proc/stat
(2)创建容器时,针对CPU资源动态调整(3个容器1:1:2)
#docker  run  -tid  --cpu-shares  1024  dhcp:dhcp  
#docker  run  -tid  --cpu-shares  1024  centos7:dhcp1  
#docker  run  -tid  --cpu-shares  2048  centos7:dhcp2

#docker ps -a


(3)限制CPU内核使用
#docker  run  -tid    --cpuset-cpus  0.1,2.3  centos7:dhcp4   //使用新建的容器绑定内核0.1.2.3.的使用

#docker run -tid -m 512MB centos7:dhcp4   // 限制新容器的内存上限为512MB

#docker run -tid --device-write-bps /dev/sda:1MB centos7:dhcp5           //限制容器的/dev/sda的读写速度为1MB:只能限制设备不限分区

#docker run -it --cpu-period=50000 --cpu-quota=25000 centos7:dhcp5 /bin/bash        //将  CFS  调度的周期设为  50000,将容器在每个周期内的  CPU  配额设置为  25000,表示该容器每  50ms  可以得到  50%  的  CPU  运行时间。
#docker run -m 1G --memory-swap 3G centos7:dhcp5  //限制物理内存为1GB,虚拟内存为3GB

#docker run -it -m 100M --oom-kill-disable centos7:dhcp5 /bin/bash     ///禁用oom,内存限制为100M,----禁用oom,必须启用内存限制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值