这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs;还学习了对容器的资源进行限制的操作,包括:CPU(- c),内存(-m --memory-swap),blkio IO(--device-weight),知道了容器的cpu和blkio io的限制是根据权重来限制的,这种权重体现在资源紧缺的情况下,而内存的限制是由物理内存和swap内存来限制的,如果不设置--memory-swap的情况下,--memory-swap是-m的两倍;还学习了容器的底层技术cgroup和namespace,cgroup:是对资源的限制,-c,-m,--device-weight就是对cgroup控制的,可以在host上的/sys/fs/cpu/docker/PID下的cpu.shares进行查看;namespace:对资源进行隔离,包括6种资源:mount namespace容器文件系统,user spacename容器用户,PID容器进程,UTS容器hostname,network namespace容器网络资源,IPC容器共享内存和信号量。
下面总结一下这段时间的命令
docker attach 进入容器
docker exec -it <container-name> bash 以交互方式打开一个容器的终端
docker start 开始容器
docker stop停止容器
docker kill停止容器,比docker stop快
docker create创建容器
docker pause暂停容器
docker unpause不暂停容器
docker rm删除容器
docker rmi删除镜像
docker run -d --name docker1 -c 300 -m 300M --memory-swap 400M --blkio-weight 300 -h docker progrium/stress --vm 1 --vm-bytes 280M --cpu 8
-d:后台运行容器
-c:cpu权重设置为300
-m:容器内存限制为300M
--memory-swap容器的总内存为400M
--blkio-weight:容器blkio io权重为300
-h:容器的hostname是docker
--name 容器名字是docker1
progrium/stress:压测镜像
--vm 1:打开一个进程
--vm-bytes:每秒写入的字节数
--cpu :针对几颗cpu
--device-read-bps:容器磁盘读入的数据量
--device-write-bps:容器磁盘写入的数据量
--device-read-iops:容器磁盘读入的io速度
--device-write-iops:容器磁盘写入的io速度
docker rm -v $(docker ps -aq -f --status=exited)批量删除容器
-v:删除容器在host上面的volume
-q:显示容器的ID
-f:强制删除容器,包括运行状态的容器
docker stop $(docker ps -aq):批量停止容器
docker logs -f:查看容器的日志
-f:持续打印