【笔记于学习尚硅谷课程所作】
3、Docker常用命令
3.1 帮助命令
#查看版本
docker version
#查看详细信息
docker info
#帮助手册
docker --help
3.2 镜像命令
1.docker images [options]
#列出本地主机上的镜像
docker images
(1)列表表头说明
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
(2)options说明
- -a:列出本地所有的镜像(含中间映像层)
- -q:只显示镜像ID。
- –digests:显示镜像的摘要信息
- –no-trunc:显示完整的镜像信息
2.docker search [options] xxx
#在docker hub上查找xxx的镜像信息,例如
docker search tomcat
(1)options说明
- –no-trunc:显示完整的镜像描述
- -s:列出收藏数不小于指定值的镜像
- –automated:只列出automated bulid类型的镜像
3.docker pull xxx [:TAG]
#下载镜像,TAG为版本,默认为lastest(最新)
docker pull tomcat
4.docker rmi xxx [:TAG]
#删除镜像,TAG与上相同
docker rmi tomcat
#删除多个镜像,-f为强制删除的意思
docker rmi -f tomcat hello-world
#删除全部镜像
docker rmi -f $(docker images -qa)
3.3 容器命令
3.3.1 基础命令
1.新建并启动容器
docker [OPTIONS] IMAGE[COMMAND][ARG]
#例1:启动id为d94da71c3a1f的镜像
docker run -it d94da71c3a1f
#例2:启动一个centos容器,名字为mycentos
docker run -it --name mycentos centos
(1)options说明
- –name=“容器新名字”:为容器指定一个名称
- -d:后台运行容器,并返回容器ID, 也即启动守护式容器
- -i:以交互模式运行容器,通常与-t同时使用
- -t:为容器重新分配-一个伪输入终端,通常与-i同时使用
- -P:随机端口映射
- -p:指定端口映射,有以下四种格式
- ip:hostPort:containerPort
- ip::containerPort
- hostPort:containerPort
- containerPort
#对外暴露的端口是8888,内部对应端口8080。
#即开启后,访问localhost:8888会显示tomcat页面
docker run -it -p 8888:8080 tomcat
2.列出所有正在运行的容器
docker ps [OPTIONS]
(1)options说明
- -a:列出当前所有正在运行的容器+历史上运行过的
- -l:显示最近创建的容器。
- -n:显示最近n个创建的容器。
- -q:静默模式,只显示容器编号。
- –no-trunc :不截断输出。
3.退出容器
#容器停止退出
exit
#容器不停止退出
ctrl+P+Q
4.启动容器
docker start 容器ID或容器名
#例
docker start mycentos
5.重启容器
docker restart 容器ID或容器名
#例
docker restart mycentos
6.停止容器
docker stop 容器ID或容器名
#例
docker stop mycentos
7.强制停止容器
docker kill 容器ID或容器名
#例
docker kill mycentos
8.删除已停止容器
#删除一个容器
docker rm -f 容器ID或容器名
#删除多个容器1
docker rm -f $(docker ps -a -q)
#删除多个容器2
docker ps -a -q | xargs docker rm
3.3.2 重要命令
1.启动守护式容器
#使用镜像centos:latest以后台模式启动一个容器
docker run -d 容器名
问题:使用docker ps -a进行查看,会发现容器已经退出
Docker容器后台运行,就必须有一个前台进程
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。这个是docker的机制问题。所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
2.查看容器日志
docker logs -f -t --tail 容器id
(1)options说明
- -t是加入时间戳
- -f跟随最新的日志打印
- –tail数字显示最后多少条
3.查看容器内运行的进程
docker top 容器id
4.查看容器内部细节
docker inspect 容器id
5.进入正在运行的容器并以命令行交互
#exec是在容器中打开新的终端,并且可以启动新的进程(直接进行想要的操作)
docker exec -it 容器id bashShell(操作)
#exec比attach强大,下面命令相当于attach(进入原来(#`O′未停止的容器)
docker exec -it 容器id /bin/bash
#attach直接进入容器启动命令的终端,不会启动新的进程(重新进入容器,然后执行想要的操作)
docker attach 容器id
6.从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机路径
7.提交容器副本使之称为新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]