帮助命令
docker version
显示docker版本信息decker info
显示docker系统信息,包括镜像容器数docker --help
显示docker帮助命令
常用镜像命令
-
docker images
列出本地镜像
常用参数说明-a
列出所有镜像,包含隐藏的中间镜像-q
只显示镜像ID--no-trunc
显示详细信息,不截断输出--digests
显示摘要
-
docker search <oprions> 镜像名称
查询某个镜像
常用参数说明--no-trunc
显示完整的镜像描述-f
根据查询条件查询镜像,常见条件is-automated
:是否自动构建,is-official
:是否为官方镜像,stars
: stars数量
NAME:镜像名称
DESCRIPTION:镜像描述
STARS:点赞数
OFFICIAL:是否官方镜像
AUTOMATED:是否自动构建
-
docker pull 镜像名称[:tag]
下载镜像,若不提供tag,则默认下载latest版本
-
docker rmi -f 镜像名称或者镜像id
删除镜像-f
为强制删除参数,已经使用过的镜像删除是需要加-f
- 删除单个镜像
docker rmi -f 镜像名称:TAG或IMAGE ID
- 删除多个镜像
docker rmi -f 镜像名1:tag 镜像名2:tag
多个镜像之间用空格隔开 - 删除全部镜像
docker rmi -f $(docker images -qa)
- 删除单个镜像
容器命令
容器是基于镜像构建的,有镜像才能创建容器,类似Java中类与对象的关系,有类才可以创建对象。
Docker利用容器(Container)独立运行一个或一组应用。容器是用镜像创建的运行实例。它可以被启动,开始,停止,删除。每一个容器都是相互隔离的、保证安全的平台。
可以把容器看作是一个简易版的Linux环境(包括root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。
容器的定义和镜像几乎一模一样,唯一区别就在于容器的最上面那一层是可读可写的。
-
docker run [options] image [command][args]
新建并启动容器常用options说明
--name
为容器指定一个新名字-d
重要, 后台运行容器,并返回容器id,也即启动守护式容器
已后台运行后,却发现容器却已经退出。注意:Docker容器后台运行,就必须要有一个前台进程,容器如果运行的命令不是那些一直挂起的命令(例如top,tail),就是会自动退出的,
这个是docker的机制问题,比如你的web容器,已Nginx为例,正常情况下,我们配置启动服务只需要启动相应的service即可,例如 service nginx start,但是这样做,Nginx已后台模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后就会立即自杀,应为docker觉得他没事可做了,所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行。-i
以交互模式运行容器,通常与-t
一起使用-t
为容器重新分配一个伪输入终端,通常与-i
一起使用-P
大写P,随机端口映射-p
小写p 指定端口映射,有以下四种格式
-ip:hostPort:containerPort
-ip::containerPort
-hostPort:containerPort
-containerPort
端口映射,访问本地8083端口即可访问Docker中运行的tomcat对应8080端口
-
docker ps
查看所有正在运行的docker 容器
常用options说明-a
显示正在运行的和历史上运行过的-l
上一次运行的容器-n X
上X次运行的,例如-n 3
为上三次运行的-q
只显示容器编号
-
exit
关闭容器并退出 -
ctrl+p+q
退出容器但不关闭容器 -
docker start <容器id或容器名>
启动容器 -
docker restart <容器id或容器名>
重启容器 -
docker stop <容器id或容器名>
停止容器 stop:慢慢停止 -
docker kill <容器id或容器名>
强制停止容器 -
docker rm <容器id或容器名>
删除已停止的容器 -f 强制删除 (先停止再删除) -
docker rm -f ${docker ps -aq}
或docker ps-aq|xargs docker -rm
删除所有容器 -
docker run -d
<容器名称> 已守护式进程启动容器 -
docker logs -f -t --tail 容器id
查看容器日志 -t 加入时间 -f不停追加 ----tail 最后几行 -
docker top 容器id
查看容器进程 -
docker inspect 容器id
查看容器内部细节 已一个json串的形式展示容器信息 -
docker exec -it 容器ID bashShell
进入正在运行的容器并以命令行交互
-
docker attach 容器ID
重新进入容器
docker exec
与docker attach
的区别
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 是在容器中打开新的终端,并且可以启动新的进程exec 可以理解为进入容器并执行命令,并返回结果, 比attach更强大,例如
-
docker cp 容器id:容器内路径 目的主机路径
从容器上拷贝文件到主机上 docker 容器id:/容器路径 主机路径