如果你经常使用管理工具(K8S)进行docker的管理,那么你对于docker本身的内置命令使用的应该不多,因为K8S本身提供了全套的管理配置功能;那么今天我们就来分享一下非管理工具下的,针对docker使用命令方式的操作总结。

docker的命令结构图:

docker命令行删除容器 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 限制相关的所有选项如下:

docker命令行删除容器 docker 容器删除_docker查看容器使用状态_02

其中--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命令行删除容器 docker 容器删除_docker 删除所有容器_03

例如:

$ 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资源,达到更好的隔离运行效果。