docker --help可以查看docker命令介绍
docker的命令可以分为6类
子命令分类 | 子命令 |
---|---|
Docker环境信息 | info,version |
Container生命周期管理 | create,exec,kill,pause,restart,rm run,start,stop,unpause |
Docker registry命令 | login,logout,pull,push,search |
Docker images管理 | build,image,import,load,rmi,save,tag,commit |
Container运维操作 | attach,export,inspect,port,ps,rename,stats,top,wait,cp,diff |
System日志信息 | event,history,logs |
所有的命令执行前都需要加上docker
docker info和docker version都可以用于检查Docker是否正确安装,正确安装会输出Docker的配置信息
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run命令会寻找本地镜像,以此为模板新建一个容器。如果本地没有,会去远程仓库拉取。
可以使用docker run --help来挑选可以选用的选项
[OPTIONS]常见的选项有:
OPTIONS | |
---|---|
–name | 后跟随着为容器指定的名称 |
-d | 后台运行容器,并返回容器ID,即启动守护式容器 |
-i | 使用交互模式运行容器,始终保持输入流开放 |
-t | 为容器分配一个伪终端,与i同时使用。即:在容器中利用打开的weight终端与容器进行交互 |
-v | 挂载volumn |
-P | 随机端口映射 |
-p | 指定端口,可以有以下四种格式 |
ip:hostPort:containerPort | |
ip::containerPort | |
hostPort:containerPort | |
containerPort |
docker run -it --name mytest centos:latest /bin/bash
该语句将使用centos的最新版本tag镜像启动一个容器,将其命名为mytest,并且启动伪终端,然后执行容器内的/bin/bash命令。执行完语句后,系统将进入容器的伪终端。
docker run centos ls -l
该命令将会使用centos最新版本镜像启动容器,运行ls -l命令后容器将会停止运行并退出
docker start 容器ID或者容器名
该命令将会启动已经存在但退出运行的一个容器
docker start f0baacb5152d
f0baacb5152d是容器ID
docker start mytest
mytest是容器名字
docker restart 容器ID或者容器名
该命令将会重新启动已经存在的正在运行容器
docker stop 容器ID或者容器名
该命令将会让正在运行的容器停止运行
docker kill 容器ID或者容器名
该命令将让正在运行的容器强行停止运行
docker stop:支持“优雅退出”。先发送SIGTERM信号,在一段时间之后(10s)再发送SIGKILL信号。Docker内部的应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。
docker kill:发送SIGKILL信号,应用程序直接退
出。
docker rm 容器ID
删除正在运行的容器
可以采用嵌入多条命令的形式删除多个容器
docker rm -f ${docker ps -a -q}
-f将会强行删除
docker ps -a -q命令将会显示当前正在运行+历史上运行过的容器的容器ID。
所以上面命令将会强制删除docker上所有的容器,包括运行不运行
是指目前已经在容器内部的伪终端中,如何退出伪终端,回到系统原来的终端。
输入exit命令
容器会停止退出
按住crtl+P+Q键
容器将会处于运行状态下,不停止退出
docker pull [OPTIONS] NAME{:TAG}
将会从docker registry中拉取image或者repository(镜像库,包括各个版本标签的镜像)。
docker push NAME{:TAG}
将本地的image或者repository推送到docker 镜像库中
docker search [OPTIONS] NAME
寻找远程仓库下对应名字的镜像
[OPTIONS]举例
–no-trunc:显示完整的镜像描述
-s:列出收藏数不少于指定值的镜像
–automated:列出automated build类型的镜像
docker images [OPTIONS] [NAME]
列出主机上所有的镜像
[OPTIONS]说明
-a:列出本地所有镜像,包括中间映像层
-q:只显示镜像ID
–digests:显示镜像的再要信息
–no-trunc显示完整的镜像信息
注意到没有,no trunc将完整显示IMAGE ID,我们平时使用的知识IMAGE的部分ID(12位)
docker rmi [OPTIONS] IMAGE [NAME]
注意:如果rmi删除镜像时,已经有基于该镜像启动的容器存在,不管该容器是否正在运行,都无法直接删除,需要先rm删除容器,或者使用-f强制删除
删除单个:-------docker rmi -f 镜像ID
删除多个:-------docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部:-------docker rmi -f ${docker images -qa}
docker images -qa将会显示所有的镜像的镜像ID
docker ps -qa将会显示所有的容器的容器ID
注意rmi和rm的区别,一个是删除镜像,一个是删除容器
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
能将一个容器固化成一个新的镜像。注意,commit只能提交保存正在运行的容器。(不推荐使用,一般使用build和Dockerfile创建管理镜像)
[OPTIONS]说明
-m:提交的描述信息
-a:作者
直接进入容器的终端,不会启动新进程
docker attach [OPTIONS] CONTAINER
进入容器内执行某个命令后退出
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
exec可以通过添加-it选项,命令改为/bin/bash后进入容器终端
docker inspect【OPTIONS】CONTAINER|IMAGE [CONTAINER|IMAGE..]
docker ps [OPTIONS]
列出容器列表
[OPTIONS]
-a:显示所有容器,包括已经停止的
-n:显示最新指定的条数的容器
-l:只显示最新创建的容器,包括不运行的容器
-q:只显示容器ID
将容器内的文件拷贝到主机上
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|
SRC_PATH:容器内文件路径
DEST_PATH:主机上目的路径
docker top CONTAINER
查看容器内运行的进程
docker rename CONTAINER NEW_NAME
重命名该容器的name
docker logs [OPTIONS] CONTAINER
[OPTIONS]说明
-t,日志中加入时间戳
-f,跟随最新的日志打印
–tail 数字。显示最后指定数字的条数
从docker服务获取容器实时时间
展示一个镜像形成历史