1、docker帮助命令
docker version --查看docker版本信息
docker info --查看docker信息
docker help --docker命令帮助
2.docker镜像命令
a.查看本机上的镜像:docker image
需要注意的是,仓库源中的镜像文件可以有若干个镜像标签(TAG),代表不同的版本,可以通过REPOSITORY:TAG来定义不同的镜像文件。如果没有指定TAG标签,则docker一律默认镜像为latest版本。
docker image命令可选参数说明:
1,docker images -a --列出本地所有的镜像(包括中间映像层)
2,docker iamges -q --只显示镜像id(IMAGE ID)
3,docker images -digests --显示镜像的摘要信息
4,docker images -no-trunc --显示完整的镜像信息
b.查找某个镜像信息:docker search 某个镜像的名字(从docker hub上查找)
docker search [OPTIONS] 镜像名字
OPTIONS值说明:
1.docker search -no-trunc tomcat :显示tomcat完整的镜像描述
2.docker search -s=30 tomcat :显示stars数大于等于30的镜像信息
3.docker search --automated tomcat:只列出automated build类型的镜像
c.拉取(下载)某个镜像文件:docker pull 某个镜像名字:TAG
1.docker pull tomcat:8.5 --下载版本号为8.5的镜像
2.docker pull tomcat --不标明TAG的情况下,一律下载latest版本的镜像
d.删除本地镜像:docker rmi 某个镜像名字/ID
1.docker rmi 某个镜像名字ID --删除镜像
2.docker rmi -f 镜像ID --强制删除对应镜像ID的镜像
3.docker rmi -f 镜像名1:TAG 镜像名2:TAG --删除多个镜像
4.docker rmi -f $(docker images -qa) --删除本地所有镜像
e.docker commit操作
1.docker commit --提交容器副本使之成为一个新的镜像
2.docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
例:
注意!!!!!!!!!!!!!!!!!!!!!!!!!
此处用的是tomcat:8.0.52版本!!较高版本下的webapps文件夹是空的。。。也就是说启动了Tomcat后访问ip:port是404。
此时通过exec命令进入上面启动的Tomcat容器中,并删除webapps文档下的docs文档,如下图所示
此时访问Tomcat页面中的文档会报404,如下图所示
也就是说,当前的tomcat运行实例是一个没有文档内容的容器,以它为模板commit一个没有docs文档的新的镜像文件(sg/mytomcat),新的镜像名称不能为大写字母,如下图所示:
最后运行官方提供的镜像实例化的容器和我们自己commit的镜像实例化的容器,对比点击二者的documents的区别,这篇文章图有点多,这里就不上图了。自行测试比较。
4.容器命令
有镜像才能创建容器,这是根本前提。
a.新建并启动容器:docker run [OPTIONS] IMAGE [COMMAND]
OPTIONS说明(常用):
--name="容器新名称" --为容器指定一个新名称;
-d --后台运行容器,并返回容器ID,即启动守护式容器
-i --以交互式运行容器,通常与-i同时使用
-t --为容器重新分配一个伪输入终端,通常与-i同时使用
-P --系统指定随机端口进行端口映射
-p --自行指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort(常用)
containerPort
COMMAND为容器启动后需要执行的命令,例如docker run centos /bin/bash中的/bin/bash命令
b.列出当前所有正在运行的容器:docker ps [OPTIONS]
OPTIONS说明:
docker ps -a --列出当前所有正在运行的容器和历史上运行过的
docker ps -l --显示最近创建的容器
docker ps -n --显示最近n个创建的容器
docker ps -q --静默模式,只显示容器编号
docker ps --no-trunc --不截断输出
c.容器退出
退出容器有以下两种方法:
1.exit --容器停止再退出
2.ctrl+P+Q --容器只退出,并不会停止
d.启动容器
docker start 容器ID或者容器名
需要注意的是,这里的启动容器不同于上面的“新建并启动容器(docker run [OPTIONS] IMAGE [COMMOND])”,
前者是本地之前已经通过镜像创建容器,即容器已经存在,但未运行;后者则是在容器还未被创建的前提下执行的命令
e.重启容器
docker restart 容器ID或者容器名
f.停止容器
docker stop 容器ID或者容器名
g.强制停止容器
docker kill 容器ID或者容器名
h.删除已停止的容器
删除单个容器:docker rm 容器ID
批量删除容器:docker rm -f $(docker ps -a -q
j.启动守护式容器
docker run -d 容器名
需要注意的是,以守护式模式启动容器后,查看正在运行的容器会发现容器已经停止退出,这是因为docker容器以守护式模式在后台运行
,就必须拥有一个前台的进程(如centos的伪终端),容器运行的命令如果不是那些一直挂起的命令,例如top、tail命令,就会自动退出。
docker logs -tf --tail 容器ID
[OPTIONS]说明:
-t --日志信息中加入时间戳
-f --跟随最新的日志打印
--tail 数字,即显示最后多少条
这里需要注意的是tail参数值前面是--
docker top 容器ID
n.查看容器内部细节
docker inspect 容器ID
l、n可参考下图:
m.进入正在运行的容器并以命令行进行交互
docker exec -it 容器ID bashShell
docker attach 容器ID --重新进入容器
attach和exec的区别:
attach直接进入容器启动命令的终端,不会启动新的进程;
exec是在容器中打开新的终端,并且可以启动新的进程。
docker cp 容器ID:容器内路径 目的主机路径
可参考下图:
欠着...