查看容器端口映射
docker port 容器名称或id
一 容器简介
容器(Container):容器是一种轻量级、可移植、并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行
•Docker将镜像文件运行起来后,产生的对象就是容器。容器相当于是镜像运行起来的一个实例。
•容器具备一定的生命周期。
•另外,可以借助docker ps命令查看运行的容器,如同在linux上利用ps命令查看运行着的进程那样。
二 容器与虚拟机
•容器和虚拟机一样,都会对物理硬件资源进行共享使用。
•容器和虚拟机的生命周期比较相似(创建、运行、暂停、关闭等等)。
•容器中或虚拟机中都可以安装各种应用,如redis、mysql、nginx等。也就是说,在容器中的操作,如同在一个虚拟机(操作系统)中操作一样。
•同虚拟机一样,容器创建后,会存储在宿主机上:linux上位于/var/lib/docker/containers下
注意:容器并不是虚拟机,但它们有很多相似的地方
•虚拟机的创建、启动和关闭都是基于一个完整的操作系统。一个虚拟机就是一个完整的操作系统。而容器直接运行在宿主机的内核上,其本质上以一系列进程的结合。
•容器是轻量级的,虚拟机是重量级的。首先容器不需要额外的资源来管理(不需要Hypervisor、Guest OS),虚拟机额外更多的性能消耗;其次创建、启动或关闭容器,如同创建、启动或者关闭进程那么轻松,而创建、启动、关闭一个操作系统就没那么方便了。
•也因此,意味着在给定的硬件上能运行更多数量的容器,甚至可以直接把Docker运行在虚拟机上。

三 容器生命周期
3.1 虚拟机的生命周期

3.2 容器的生命周期

四 容器生命周期管理
4.1 容器创建 – docker create
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
利用镜像创建出一个Created 状态的待启动容器
|
4.2 容器启动 – docker start
1 2 3 4 5 6 7 8 9 10 11
|
将一个或多个处于创建状态或关闭状态的容器启动起来
|
4.3 容器创建并启动 – docker run
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
利用镜像创建并启动一个容器
-v 目录映射关系, 宿主机目录:容器目录
-p 端口映射,宿主机端口:容器端口
|
4.4 docker run 与 docker create + docker start
1 2
|
docker run 相当于 docker create + docker start –a 前台模式 docker run -d 相当于 docker create + docker start 后台模式
|
4.5 容器暂停 – docker pause
1 2 3 4 5 6 7 8 9 10
|
暂停一个或多个处于运行状态的容器
|
4.6 容器取消暂停 – docker unpause
1 2 3 4 5 6 7 8 9
|
取消一个或多个处于暂停状态的容器,恢复运行
|
4.7 容器关闭 – docker stop
1 2 3 4 5 6 7 8
|
关闭一个或多个处于暂停状态或者运行状态的容器
|
4.8 容器终止 – docker kill
1 2 3 4 5 6 7 8
|
强制并立即关闭一个或多个处于暂停状态或者运行状态的容器
|
4.9 docker stop和docker kill的区别
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
1 Linux其中两种终止进程的信号是:SIGTERM和SIGKILL 2 SIGKILL信号:无条件终止进程信号。 进程接收到该信号会立即终止,不进行清理和暂存工作。 该信号不能被忽略、处理和阻塞,它向系统管理员提供了可以杀死任何进程的方法。 3 SIGTERM信号:程序终结信号,可以由kill命令产生。 与SIGKILL不同的是,SIGTERM信号可以被阻塞和终止,以便程序在退出前可以保存工作或清理临时文件等。
|
4.10 容器重启 – docker restart
1 2 3 4 5 6 7 8
|
重启一个或多个处于运行状态、暂停状态、关闭状态或者新建状态的容器 该命令相当于stop和start命令的结合
|
4.11 容器删除 – docker container rm
1 2 3 4 5 6 7 8 9 10
|
删除一个或多个容器
docker container rm [OPTIONS] CONTAINER [CONTAINER...] 或者 docker rm [OPTIONS] CONTAINER [CONTAINER...]
-f, --force 强行删除容器(会使用 SIGKILL信号) -v, --volumes 同时删除绑定在容器上的数据卷
docker rm -f 容器id 容器名
|
五 容器信息查看
5.1 容器详细信息 – docker container inspect
1 2 3 4 5 6 7 8 9 10 11
|
查看本地一个或多个容器的详细信息
docker run -it --name=mynginx nginx /bin/bash
docker container ls
docker container ls --all
|
5.2 容器日志信息 – docker logs
1 2 3 4 5 6 7 8 9 10 11 12 13
|
查看容器的日志信息
docker logs [OPTIONS] CONTAINER
--details 显示日志的额外信息 -f, --follow 动态跟踪显示日志信息 --since string 只显示某事时间节点之后的 --tail string 显示倒数的行数(默认全部) -t, --timestamps 显示timestamps时间 --until string 只显示某事时间节点之前的
容器日志中记录的是容器主进程的输出STDOUT\STDERR
|
5.3 容器重命名 – docker rename
六 容器运行时操作
6.1 容器连接 – docker attach
1 2 3 4 5 6
|
将当前终端的STDIN、STDOUT、STDERR绑定到正在运行的容器的主进程上实现连接
|
6.2 容器中执行新命令 – docker exec
七 总结
