如果你经常使用管理工具(K8S)进行docker的管理,那么你对于docker本身的内置命令使用的应该不多,因为K8S本身提供了全套的管理配置功能;那么今天我们就来分享一下非管理工具下的,针对docker使用命令方式的操作总结。
docker的命令结构图:
1、docker容器信息
##查看docker容器版本
docker version
##查看docker容器信息
docker info
##查看docker容器帮助
docker --help
2、docker容器命令
##列出正在运行的容器
docker ps -a
##列出所有容器(包括已停止容器)
docker ps -l
##进入运行中的容器
docker exec -it {容器ID} /bin/bash
##停止容器
docker stop {容器ID}
##删除指定的容器
docker rm -rf {容器ID}
##删除停止的容器
docker container prune
##查看容器历史运行日志
docker logs{容器名}
##实时监听 Docker 容器运行日志
docker logs -f {容器名}
##实时监控 Docker 容器的资源消耗
docker stats --no-stream
3、Docker镜像命令
##列出镜像列表
docker images
docker image ls -a
##运行 Docker 镜像(守护态方式)
docker run -d {镜像名}
##删除指定镜像
docker image rm {镜像名}
##删除 Docker 虚拟镜像
docker image prune
##搜索仓库MySQL镜像
docker search mysql
## --filter=stars=600:只显示 starts>=600 的镜像
docker search --filter=stars=600 mysql
## --no-trunc 显示镜像完整 DESCRIPTION 描述
docker search --no-trunc mysql
## --automated :只列出 AUTOMATED=OK 的镜像
docker search --automated mysql
4、Docker数据卷命令
##创建 Docker 数据卷
docker volume create {数据卷名}
##删除指定Docker 数据卷
docker volume rm {数据卷名}
##列出Docker 数据卷
docker volume ls
##删除未关联(失效) Docker 数据卷
docker volume prunedocker volume rm $(docker volume ls -qf dangling=true)
5、Docker文件操作命令
##从主机复制文件到 Docker 容器中
sudo docker cp {主机内文件路径} {容器ID}:{容器内文件存储路径}
##从 Docker 容器中复制文件到主机中
sudo docker cp {容器ID}:{容器内文件路径} {主机内文件存储路径}
6、Docker的资源限制-通过run命令
1)CPU限制
Docker 的资源限制和隔离完全基于 Linux cgroups。对 CPU 资源的限制方式也和 cgroups 相同。Docker 提供的 CPU 资源限制选项可以在多核系统上限制容器能利用哪些 vCPU。而对容器最多能使用的 CPU 时间有两种限制方式:一是有多个 CPU 密集型的容器竞争 CPU 时,设置各个容器能使用的 CPU 时间相对比例。二是以绝对的方式设置容器在每个调度周期内最多能使用的 CPU 时间。
docker run
命令和 CPU 限制相关的所有选项如下:
其中--cpuset-cpus
用于设置容器可以使用的 vCPU 核。-c
,--cpu-shares
用于设置多个容器竞争 CPU 时,各个容器相对能分配到的 CPU 时间比例。--cpu-period
和--cpu-quata
用于绝对设置容器能使用 CPU 时间。
例如:
$ docker run -it --cpuset-cpus="1,3" ubuntu:14.04 /bin/bash
表示容器中的进程可以在 cpu 1 和 cpu 3 上执行。
2)内存限制
Docker 提供的内存限制功能有以下几点:
- 容器能使用的内存和交换分区大小。
- 容器的核心内存大小。
- 容器虚拟内存的交换行为。
- 容器内存的软性限制。
- 是否杀死占用过多内存的容器。
- 容器被杀死的优先级
一般情况下,达到内存限制的容器过段时间后就会被系统杀死。
内存限制相关的参数
执行docker run
命令时能使用的和内存限制相关的所有选项如下。
例如:
$ docker run -it -m 500M --memory-reservation 200M ubuntu:16.04 /bin/bash
如果容器使用了大于 200M 但小于 500M 内存时,下次系统的内存回收会尝试将容器的内存锁紧到 200M 以下。
例如:
$ docker run -it --memory-reservation 1G ubuntu:16.04 /bin/bash
容器可以使用尽可能多的内存。--memory-reservation
确保容器不会长时间占用太多内存。
备注:
1、Docker的命令其实还有很多,本文中只是介绍了常用的部分。
2、Docker运行的时候建议根据系统特性限制CPU、MEM资源,达到更好的隔离运行效果。