一、docker 帮助相关命令
1.1 查看docker 版本 docker version
1.2 查看显示全系统信息 docker info
1.3 显示docker相关的所有命令以及参数说明 docker --help
二、镜像相关命令
镜像命令主要包含 查询本地镜像列表、查询远程镜像列表、下载镜像、删除本地镜像命令。
2.1 查询本地镜像列表 images
语法: docker images -[options]
可选参数:
-a:展示全部镜像
-q:只展示镜像的镜像id
REPOSITORY:镜像的仓库源。
TAG:镜像的标签。
IMAGE ID:镜像ID。
CREATED: 镜像创建时间。
SIZE:镜像大小。
2.2 搜索远程(docker hub)镜像列表 search
语法:docker search [-options] 镜像名称
--no-trunc :显示完整的镜像描述。eg: docker search --no-trunc zookeeper
-s :列出收藏数不小于指定值的镜像列表。eg:docker search -s 300 zookeeper
--automated:列出automated类型的镜像。eg docker search --automated zookeeper
2.3 下载镜像 pull
语法:docker pull 镜像名称:[TAG]
不使用版本号时下载 默认下载最新版本 eg:docker pull tomcat
2.4 删除本地镜像 rmi
语法:docker rmi 镜像id 或 镜像名:[TAG]
单个删除:docker rmi 镜像Id 或 docker rmi 镜像名:[TAG]
批量删除:docker rmi 镜像Id 镜像Id2 或 docker rmi 镜像名:[TAG] 镜像名:[TAG]
删除全部:docker rmi $(docker iamges -q)
强制删除:docker rmi -f $(docker iamges -q) 当有启动中的容器时,不能删除对应镜像,只能强制删除。
三、容器命令
容器命令主要包括查看容器列表、创建启动容器、退出容器、停止容器、启动容器、重启容器、删除容器。以及其他容器操作如查看容器日志、容器进程、进入容器并使用命令交互、复制容器文件到宿主机。为了方便演示我们先下载一个centos镜像(docker pull centos)用于接下来操作。
3.1 查看容器列表 ps
语法:docker ps -[options] 默认查询当前运行中的容器
-a:查看全部容器列表,包含运行过的容器(同一镜像运行出来的容器不一样,会都进行展示)。
-l:显示最近创建的容器。
-n:显示最近创建的n个容器。eg:docker ps -n 2
-q: 只显示容器编号。
3.2 创建并启动容器 run
使用run启动容器时需要注意的是 需要docker容器后台运行时,就必须有一个前台进程如 tomcat的catalina.sh 比如centos的/bin/bash.sh。或者top,tail 之类的前台进程。如果没有前台进程时,这样启动后没有立即需要做的事,即阻塞等待的任务,容器就回立马关闭。
创建并启动容器为创建一个新的容器并启动,语法:docker run [options] images [command][args]
options :
--name :为容器指定一个名称。
-d:后台运行容器,并返回一个容器ID。也即启动守护式容器
-i:以交互模式启动容器,通常与-t同时使用。
-t:为容器重新分配一个伪输入终端,通常与-i同时使用。
-P:随机端口映射
-p:指定端口映射 eg: docker run -d -p 8888:8080 tomcat:8.5
3.3退出容器 exit、ctrl+p+q
方式1:使用 exit:停止容器并退出。
方式2:ctrl+p+q 不停止容器退出。
当你没有只是用-d 守护式启动tomcat之类容器时,直接进入到日志打印界面后,同过ctrl+c直接停掉tomcat后,没有了前台进程后,改容器也会自动关闭。
3.4停止容器 stop 、kill
语法:docker stop 容器id或容器名
我们停止刚才启动的 centos8
强制停止容器: docker kill 容器id或容器名
3.5启动容器 start
接下来我们继续重启刚才停掉的 centos8 容器语法: docker start 容器id 或容器名
3.6重启容器 restart
语法:docker restart 容器id或容器名
3.7 删除容器(如在运行中不能删除会提示错误) rm
语法:docker rm 容器id或容器名
强制删除全部容器: docker rm -f $(docker ps -aq)
3.8 查看容器内日志 logs
语法:docker logs -[options] 容器id
-t:日志加入时间戳
-f:跟随最新的日志打印
--tail 数字 显示最后多少条日志
3.9查看容器进程 top
语法:docker top 容器id
3.10 进入容器并使用命令行交互 exec attach
两种方式:
语法一:docker exec -it 容器id /bin/bash
语法二:docker attach 容器id
区别:exec会进入容器并新打开一个新的终端,并启动新的进程。
attach 直接进入容器终端,不会创建新的进程。当使用该方式进入后,使用exit退出后容器将关闭。而在exec中使用exit只会退出当前终端,之前的进程不会停止。
使用exec 后使用exit退出:
使用attach 后使用exit退出:
3.11 复制容器文件到宿主机 cp
语法:docker cp 容器id:容器内路径 主机路径
3.12 查看容器内部细节 inspect
语法:docker inspect 容器id
3.13 将容器打包为新的镜像 commit
语法:docker commit -m='镜像描述' -a='作者' 容器id 新的镜像名/名称:版本
测试验证方式:我们在运行的tomcat容器中 修改其内部文件内容比如webapps下文件。使用commit后的镜像在此run后可以在新的容器中查看和预期效果一样新创建的容器和之前打包镜像之前的容器内容一致。
四、容器镜像命令总结