# 容器控制操作

补充一些 Docker 的命令,对于这种单纯的命令查看,建议直接看菜鸟教程。

# 进入容器,退出:ctrl+P,ctrl+Q;终止容器运行的程序:ctrl+C
docker attach 容器ID/名称
# 执行命令,这里执行的是 bash,并开启一个可输入终端
docker exec -it 容器ID/名称 bash
# (假设容器可以执行 java),就相当于让容器执行 java -version
docker exec 容器ID/名称 java -version
# 允许容器处理善后再停止运行
docker kill 容器ID/名称
# 直接强制停止容器
docker stop 容器ID/名称
# 启动容器(一般是容器被 stop 之后)
docker start 容器ID/名称
# 重启容器
docker restart 容器ID/名称
# 暂停容器 (unpause-- 取消暂停)
docker pause 容器ID/名称

# 物理资源管理

  • 内存分配:
docker run -it -m 50M --memory-swap=100M nagocoler/springboot-test:1.0

-m 对容器的物理内存的限制, --memory-swap 对内存和交换分区总和的限制。默认都是 - 1,即没有任何限制。如果仅指定 -m ,那么交换内存的限制也为 -m 指定的参数。

  • CPU 进行限额:
# 
docker run -c 1024 ubuntu
docker run -c 512 ubuntu

对 CPU 的分配只有多容器才生效,默认是 1024,如果 CPU 不紧张,依然可以使用全部 CPU 资源。

通过 Ubuntu 命令: sudo apt install stress 在容器中下载压力测试工具来看一下进程分配权重对进程获得 CPU 资源的影响。

还可以限制容器使用 CPU:

docker run -it --cpuset-cpus=1 ubuntu

选项后面的值不是 CPU 的数量,而是 CPU 的 “编号”,即这个容器只用 1 这个 CPU,所以指定两个 CPU 时也可以这样: docker run -it --cpuset-cpus=0,1 ubuntu

命令 --cpus 来限制使用 CPU 资源数(个数): docker run -it --cpus=1 ubuntu

# 容器监控

docker stats

可以实时对容器的各项状态进行监控,包括内存使用、CPU 占用、网络 I/O、磁盘 I/O 等信息。

top 命令可以查看容器进程:

docker top 容器ID/名称

对于容器监管,也有页面版本的,官方下载教程,此处不过多讲解。

# 参考

https://www.yuque.com/qingkongxiaguang/zwhkpi/kq6rlg

https://www.runoob.com/docker/docker-start-stop-restart-command.html