加载docker 镜像
docker load -i <镜像名>
运行一个docker
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docekr run -itd <容器镜像名> command
docker容器命名和重命名
# 容器命名
docker run -itd --name <容器实例名> <容器镜像名> command
# 重命名容器
docker rename <容器实例名> <容器实例名>
创建docker 容器实例时指定主机名
docker run -it --name 容器名 -h 主机名 镜像 commad
docker容器开机自启动
docker run -itd --restart=always --name 容器名 -h 主机名 镜像名 commad
--restart 重启策略:
1、no -- 默认策略,docker退出后不重启docker实例
2、on-failure -- 当docker非正常退出时(退出状态为非0),才会重启docker实例
3、on-failure:3 -- 当docker非正常退出时(退出状态为非0),最多重启docker实例3次
4、always -- 当docker退出时一直重启docker实例
5、unless-stopped -- 当docker退出时总是重启docker实例,但不考虑在docker守护进程启动时就已经停止的了docker实例
使用docker update --restart=<重启策略> 容器ID或容器实例名
docker 的端口映射
docker run -d -p 80:80 docker实例名
查看docker 系统进程
docker ps
关闭docker 运行进行
docker kill [OPTIONS] CONTAINER [CONTAINER...]
docker 容器的资源配额控制-——CPU
通过cgroup (Control Gropu) 来控制容器使用的资源配额,包括(cpu,内存,磁盘)
docker run -c,–cpu-shares – 指定容器实例所使用的CPU份额值,其值不能保证可以获取1个vcpu或多少GHz的CPU资源,仅仅只是一个弹性的加权值,默认份额值为:1024
特点:cgroup 只在多个容器实例同时争抢同一个CPU资源的时候CPU配额才会生效,资源分配的结果取决于同时运行的其他容器实例的CPU分配和容器进程运行情况。
# 给docker 实例分配512权重的CPU使用份额
docker run -c 512 -it --name 容器实例名 -h 主机名 镜像名 command
# 查看cpu的配置份额
cat /sys/fs/cgroup/cpu/cpu.shares
–cpuset – 绑定CPU
–cpuset-cpus – 配置CPU
–spuset-mems – 配置内存
对具有MUMA拓扑(多CPU,多内存节点)的服务器尤其有用
服务器架构分类:
- SMP : (Symmetric Multi-Processor) 对称多处理器结构 如:x86服务器、双路服务器(主板上有两块物理CPU)
- NUMA : (Non-Uniform Memory Access)非一致存储访问结构 如:IBM小型机 P Series 690
- MPP : (Massive ParallelProcessing) 海量并行处理结构 如:大型机 IBM Z14
taskset 命令:
taskset 设置CPU亲和力,将一个或多个进程绑定到一个或多个处理器上运行
相关参数:
- c : 指定cpu
- p : 指定系统进程ID
# 将指定PID绑定到CPU1和2上
taskset -cp 1,2 PID
# 查看指定PID:1运行在哪个CPU上
[root@centos7 docker][01:13 bash-4.2]# taskset -cp 1
pid 1's current affinity list: 0,1
# 查看系统进程树
pstree -p
绑定cpu可以减少cpu上下文切换的开销节约时间,从而提升效率
docker run -itd --name 容器实例名 -h 主机名 --cpuset-cpus <init> 镜像名 commad
# 示例:
docker run -itd --name dockertest01 -h docker01 --cpuset-cpus 0-2 centos bash
# 查看:
cat /sys/fs/cgroup/cpuset/cpuset.cpus
cpu配置份额控制参数混合使用
docker run -itd -c 512 --name dockertest01 -h docker01 --cpuset-cpus 0 centos bash
docker run -itd -c 1024 --name dockertest02 -h docker02 --cpuset-cpus 1 centos bash
docker exec -it docker01 bash
Linux 系统压力测试工具 —— stress
yum install epel-releas
yum install stress
stress -c 2 -v -t 10m
Docker 控制容器实例的可用内存份额:-m
docker run -it -m 128m --name dockertest01 -h hostname centos7 bash
Docker 实例开启系统特权模式:–privilenged
- 说明:实例中默认特权模式是关闭状态,部分命令需要开启特权模式才可以使用如:mount
docker run -itd --name dockertest02 -h dockertest02 --privileged=true centos7