1、关于docker对cpu、内存的限制
docker run --cpus 2 (--cpu-period=100000和--cpu-quota=200000 ),其中 2代表 后项除前项 的值 ,可以为小数。 代表使用2个cpu的比例,不是指定2个cpu , 例如4C的机器,可以使用200% 的使用率 。
1.1)--cpuset-cpus=<value>:该参数可用于限制容器使用指定的cpu,如果有多个cpu,可逗号分隔或者使用连字符进行指定,比如1,3代表使用第1和第3个cpu,0-3代表使用编号为0,1,2,3的cpu。
1.2)--cpu-shares=<value>:该参数可设置容器使用cpu的权重,默认值是1024,不设置或者将其设置为0都将使用默认值,数值越大权重越大。这是一个软限制,只有cpu资源不足时才生效。当cpu资源充足时,各个容器可以在不超过资源限制的条件下使用cpu资源;当cpu资源不足,并有多个容器竞争cpu资源时,系统会根据每个容器的权值和所有容器权值的比例来给容器分配 cpu使用比例,如系统中只有一个容器实例,不设置该参数或设置为--cpu-shares=1024或任意参数值,该容器将可以最大化使用cpu ,如果系统中有多个容器实例,容器1不设置,容器2设置为--cpu-shares=1024,容器2设置--cpu-shares=2048,那么当资源cpu不充足时,cpu比例按照1:1:2分配, 但当cpu充足时,每个容器可以最大化使用cpu资源。
1.3) docker run -m 4g 该参数用于限制容器使用的内存。
1.4)--memory-swap =<value>:内存+交换分区的总限制,只有设置了-m之后,这个参数才有意义。如果--memory=300m,--memory-swap=1g,那么容器可以使用300m的内存和700m的交换分区;如果设置的数值和--memory一样,那么容器无法使用交换分区;如果该值没有设置,容器最多可以使用和--memory一样大的交换分区;如果该值设置为0,那么相当于没有设置;如果设置为-1,可以使用的交换分区大小无限制。
2、docker -v参数 , 用于将宿主机目录挂载到容器实例中。
docker -d run -v /opt/sz/data:/opt/data
3、dockerfile ARG参数 , 用于构建时将参数值带入dockerfile 。
例如dockerfile 定义: ARG JARF
docker build --build-arg JARF=v01
4、--name sys082201 -h sys01 --privileged=true --restart=always
--name: 用于指定容器实例名称
-h : 用于指定容器实例主机名
--privileged: 用于 获取实例最高权限
--restart:用于实例自动启动
5、dockerfile WORKDIR的作用
WORKDIR指令用于设置在Docker容器中的工作目录 ,注意:这里是指容器中的,也就是在容器中进行的操作,默认将以这个目录为工作目录。
6、dockerfile COPY与ADD命令
COPY 和 ADD 都可以把local的一个文件复制到镜像里,如果目标目录不存在,则会自动创建 。
ADD与COPY有一点不同地方是:如果复制的是一个gzip等压缩文件时,ADD会帮助我们自动去解压缩文件。
7、通过dockerfile构建为镜像操作
docker build -t kfk:v01 -f ./Dfile . 其中-t 指定镜像名称和tag , -f 用于指定dockerfile , 最后的. 前往不能丢, 代表依据当前目录环境镜像操作,例如ADD文件,该文件是这个目录等。
8、-net=host 参数
指定容器启动的网络模式, host为主机模式,绑定本机ip和端口启动实例。 如果不指定,默认是brig 模式。
9、--link 参数
该参数用于通过主机名链接 其它容器,也就是可以通过主机名找到其它容器实例的主机解析。
