Docker Day 2 Docker容器管理

单一容器管理

以下面安装的镜像为例

容器的标识符

 每一个容器被创建后,都会分配一个container id 作为容器唯一标示。
 后续对容器的启动,停止,修改,删除等所有操作,都是通过container id 来完成的
 container id 有点像数据库的主键。 container id 默认是128位,但是对于大多数主机来说,ID的前16位就足以保证其在本机的唯一性。
 所以,默认情况下我们使用的container id简略形式即可(ID 的前16位)。
 使用docker ps 可以查看到container id 简略形式,如果需要完整的container id ,使用 dockers ps --no-trunc

举例:CONTAINER ID 简略形式

    docker ps

举例:CONTAINER ID 完整形式

    docker ps --no-trunc

查询容器信息

通过docker inspect 命令可以查询容器的所有基本信息,包括运行情况,存储位置,配置参数,网络设置等。

    docker inspect  1855a5a27124

docker inspect 以 JSON 的格式展示信息的,通过 -f 可以使用Golang的模板来提取指定部分信息。

举例1: 提取容器的运行状态

    docker inspect -f {{.State.Status}} 1855a5a27124

举例2: 提取容器的IP地址

     docker inspect -f {{.NetworkSettings.IPAddress}} 1855a5a27124

查看容器日志

    docker logs 1855a5a27124        # 查看1855a5a27124 容器的日志
    docker logs -f 1855a5a27124     # 查看1855a5a27124容器实时打印的日志

查看容器所占用的系统资源,如: CPU使用率,内存,网络和磁盘开销等。

    docker stats 1855a5a27124      # 查看容器实时占用的系统资源

容器内部命令

经常有登入Docker容器内部执行命令的需求,可以在容器中启动sshd服务来响应用户登陆,但sshd方式存在进程开销和增加被攻击的风险,同时也违背了Docker所倡导的 一个容器一个进程 测原则。

Docker 提供了原生的方式支持登入容器 docker exec,使用形式如下:

    docker exec + 容器名+ 容器内部执行的命令

例如:查看容器内部运行了哪些进程

     docker exec 1855a5a27124 ps aux


docker exec -it 1855a5a27124 /bin/bash # 登入容器内部 参数 -it “-i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 /bin/bash/ 后启动一个可以输入shell命令的终端 ”

猜你喜欢

转载自www.cnblogs.com/MeiCheng/p/10425784.html