目录
单一容器管理
以下面安装的镜像为例
容器的标识符
每一个容器被创建后,都会分配一个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命令的终端 ”