docker 容器的常用命令
docker 容器的常用命令
一、基础概念
1、容器
(1)容器狭义的讲就是盛放东西的器皿,比如锅、碗、瓢、盆,再比如数组、字符串等,Java 集合框架中列表、集、散列映射等也是容纳数据的容器。
(2)容器广义上讲是包含容器管理器、实际盛放数据的器皿在内的软件,比如 docker 就是一款集容器管理器和器皿于一体的虚拟环境软件。
(3)大家常说的 docker 实际上是集容器管理器、盛放资源的器皿、镜像等于一体的综合性虚拟软件,也就是广义上的容器。
2、容器管理器
容器管理器是指管理容器中运行的资源的软件,建立了容器内的资源与外部的硬件之间的交互关系。
3、镜像
这里的镜像是指将具备一定功能的软件按照指定的要求打包成可以在容器管理器的指导下可正常运行的软件包。比如将 JRE 和大家开发的 Java 项目按照 docker 的要求打包成一个软件包,这个软件包就是镜像。
4、虚拟机
容器和虚拟机的最大不同有两点:
(1)量级有异:容器通常是轻量级的,对硬件资源的消耗远低于虚拟机;虚拟机是重量级的,对硬件资源的要求较高。
(2)用途不同:容器通常指虚拟出部分的环境,虚拟机虚拟出整台机器,完整对应于硬件电脑。这正是它们各自的特性导致的不同用途。
二、docker 服务相关:
1、启动 docker 服务:
sudo service docker start
或
service docker start
2、停止 docker 服务:
sudo service docker stop
或
service docker stop
3、重启 docker 服务:
sudo service docker restart
或
service docker restart
4、实时监控 docker 守护进程(服务)的状态(类似于进程管理器):
sudo docker stats
或
docker container stats
或
sudo docker container stats
或
docker stats
温馨提示:此命令使用频率非常高。
三、容器管理器相关
1、查看 docker 的帮助信息:
sudo docker info
或
docker info
或
docker container info
这两种方式显示的结果不同。
2、 查看指定的 docker 容器的详细信息:
sudo docker inspect 容器名
或
docker inspect 容器名
或
sudo docker container inspect 容器名
或
docker container inspect 容器名
3、列出活跃中的 docker 容器:
sudo docker container ls
或
docker container ls
温馨提示:此命令使用频率较高。
4、列出所有的 docker 容器(包含已退出的 docker 容器):
sudo docker ps -a
或
docker ps -a
或
docker container ls -a
温馨提示:此命令使用频率较高。
5、列出最后一次运行的容器:
sudo docker ps -l
或
docker ps -l
或
docker container ls -l
6、重新启动已停止的指定的容器:
sudo docker start 容器名
或
sudo docker start 使用容器ID
7、进入到指定的容器中:
docker exec -it 容器名 /bin/bash
或
docker exec -it 容器名 bash
温馨提示:此命令使用频率较高。
8、删除所有 docker 容器
sudo docker rm $(docker ps -a -q)
9、删除指定的 docker 容器:
sudo docker rm 容器名
四、日志相关:
1、获取指定容器的日志:
sudo docker logs 容器名
或
sudo docker logs 容器ID
或
docker logs 容器名
或
docker logs 容器ID
或
sudo docker container logs 容器名
或
docker container logs 容器名
或
sudo docker container logs 容器ID
或
docker container logs 容器ID
2、获取指定容器的最后几条日志:
sudo docker logs -f 容器名
或
docker logs -f 容器名
或
sudo docker logs -f 容器ID
或
docker logs -f 容器ID
或
sudo docker container logs -f 容器名
或
docker container logs -f 容器名
或
sudo docker container logs -f 容器ID
或
docker container logs -f 容器ID
温馨提示:此命令使用频率较高。
3、进入到指定的容器中并查看特定目录下的日志文件:
docker exec -it 容器名 /bin/bash -c 'tail -f 日志文件完整路径'
如:
docker exec -it abc /bin/bash -c 'tail -f /home/zhangSan/logs/*.log'
五、镜像相关
1、列出全部的 docker 镜像:
sudo docker images
或
docker images
2、拉取指定的镜像:
sudo docker pull 镜像名
或
docker pull 镜像名
3、删除所有的 docker 镜像:
sudo docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
4、将现有的 docker 镜像另存为:
sudo docker save 镜像名 > /path/新镜像名.tar
5、加载指定的自定义镜像:
sudo docker load < /path/自定义镜像
6、删除为 none 的镜像:
docker images --no-trunc| grep none | awk '{print $3}' | xargs -r docker rmi
六、常用参数:
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-p : 端口映射 格式为[主机端口:容器端口]
-d : 后台模式运行
-name : 给容器一个新的名称
-v: 挂载主机的目录
-e: username="ritchie": 设置环境变量
-m: 设置容器使用内存最大值
--env-file=[]: 从指定文件读入环境变量
七、新装 docker 容器的默认用户名和密码:
用户名: docker
密码: tcuser