目录
login
login:登录到远程仓库 登录到远程仓库后可可以拉取仓库的镜像了
docker login [OPTIONS] [SERVER] # 默认为docker官方仓库
options
- -u string:用户名
- -p string:密码
search
search命令可以从远程仓库搜索镜像
docker search [options] TERM
- TERM 镜像关键词
options
- -f filter:根据条件过滤镜像,
no-trunc:显示完整的镜像描述。默认情况下,搜索出来的镜像的描述太长的话会隐藏,no-trunc参数会让镜像信息完整的展示出来
–limit int: 限制搜索出来的镜像的个数,最大不能超过100个,默认25个
–format string: 指定镜像显示的格式。
docker search -f KEY=VALUE TERM
KEY的可选值
stars int: 根据热度过滤,如:stars=10表示过滤热度大于10的镜像
is-automated boolean: 根据是否自动构建过滤,如:is-automated=false表示过滤非自动构建的镜像
is-official boolean: 根据是否官方发布过滤,如:is-official=false表示过滤非官方发布的镜像
–format参数用来指定搜索出来的镜像的显示的格式
docker search --format "[table] {{COLUMN}}[{{COLUMN}}...]" TERM
COLUMN的可选值如下:
.Name:显示镜像的名称列
.Description:显示镜像的描述列
.StarCount:显示镜像的热度一列
.IsOfficial:显示镜像是否是官方发布一列
.IsAutomated:显示镜像是否是自动构建一列
push
push可以把本地仓库中的镜像推送到远程仓库
docker push [OPTIONS] NAME[:TGA]
options
- –disable-content-trust:推送是远程仓库不校验签名,默认为true
NAME:镜像名称
TAG:镜像版本号,可省略,默认为latest
pull
pull命令可以从远程仓库拉取镜像,如果本地仓库已经存在该镜像,则会更新。
docker pull[OPTIONS] NAME[:TAG|@DIGEST]
options
- -a:拉取镜像的所有版本号
- -disable-content-trust:推送时远程仓库不校验签名,默认为true
- -q: 安静模式,推送过程中不展示详细信息
NAME:镜像名称
TAG:镜像版本号,可省略,默认为latest
DIGEST:镜像的摘要,每个镜像都有对应的名称、id、摘要信息,每个摘要信息能唯一代表一个镜像 。
images
images命令可以显示本地存在的所有镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
options
- -a: 显示所有镜像,包含中间映像(默认情况下中间映像是隐藏的)
- -f filter: 根据条件过滤镜像,过滤条件详见下文
- -q: 只显示镜像id
- -no-trunc:显示完整的镜像id。默认情况下,镜像的id只显示前12位,no-trunc参数会将镜像id完整的显示出来
- –digests:显示镜像的摘要信息
- –format string: 指定镜像显示的格式,格式详见下文
- -f参数表示根据条件过滤要显示的镜像
REPOSITORY:镜像路径
TAG:镜像版本
rmi
rmi命令可以删除一个或多个本地镜像,通常情况应该用rm表示删除命令,但是在doker命令中rm表示删除容器,所以用rmi表示删除镜像,其中的i是image的首字母
docker rmi [OPTIONS] IMAGE [IMAGE...]
options
- -f 强制删除,如果镜像有对应的容器正在运行,则不允许直接删除镜像,需要强制删除
- –no-prune:不删除该镜像的过程镜像,默认是删除的
IMAGE:镜像id或仓库路径名称
tag
tag命令可以基于一个镜像,创建一个新版本的镜像并归入本地仓库,此时该镜像在仓库中存在两个版本,可以根据这两个镜像创建不同的容器
dockerta SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
SOURCE_IMAGE: 原镜像
TARGET_IMAGE:新镜像
TAG:镜像的版本号
history
history命令用来查看某一个镜像的创建历史,也就是镜像的提交记录
docker history [OPTIONS] IMAGE
options
- -H boolean: 已可读的格式打印日期和大小,默认为true
- -q: 只显示镜像id
- -no-trunc:输出结果不截取,正常情况下查看到的结果如果某一列太长会被截取
- –format string: 指定镜像显示的格式
COLUMN的可选值如下:
.ID:镜像的ID
.CreatedSince:镜像创建的时长
.CreatedAt:镜像创建的时间戳
.CreatedBy:镜像创建使用的命令
.Size:镜像的大小
.Comment:镜像的评论
save
save命令可以把一个镜像或多个镜像打包到一个文件中,需要特别注意和export命令的区分
docker save[OPTIONS] IMAGE [IMAGE...]
options
- -o string:指定目标文件,和linux原生命令>有相同作用
IMAGE:镜像
load
load命令可以从指定文件中加载镜像,该文件需要是save命令保存的文件
docker load [OPTIONS]
options
- -i string:指定文件的路径
- -q: 安静模式输出
run
run命令可以创建一个容器并运行,如果创建容器的镜像不存在则会从远程镜像仓库下载运行容器的同时还能给容器发送一个命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
options
- -i: 以交互模式运行,通常与-t一起使用
- -t: 为容器分配一个伪终端,通常与-i一起使用
- -d: 后台模式运行容器,并返回容器id
- -p list: 指定端口映射,格式为宿主机端口:容器端口
- -P: 随机分配端口映射
- –name string: 给容器指定一个名称
- -m bytes: 限制容器可以使用的内存大小,单位可选b、k、m、g
- -v list: 把宿主机的磁盘路径挂载到容器的某个路径
- –volumes-from list: 绑定别的容器某个路径到此容器的某个路径
- -w: 指定容器的工作目录,默认是根目录
- –rm: 当容器停止运行时自动删除
- –hostname string: 指定容器的主机名
start
start命令可以启动一个或多个已经停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
options
- -a:将容器的标准输出或标准错误附加到终端
- -i:为容器附加一个标准输入终端
restart
restart可以对一个或多个容器进行重启。如果容器是未启动的则会启动,如果是正在运行中的,则会重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
options
- -t int:在重启之前等待几秒,默认10秒
CONTAINER:容器
stop
stop命令可以停止一个或多个正在运行的容器
kill命令也可以用来停止容器
不同的是stop命令允许容器在停止之前有一定的时间来进行额外操作,如释放链接、关闭请求等
kill命令则会直接强制杀死容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
options
- -t int:等待n秒后如果还没停止,直接杀死,默认10秒
CONTAINER:容器
kill
kill命令可以杀死一个或多个正在运行的容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
options
- -sstring: 给容器发送一个信号,信号编号和linux原生命令kill的信号编号一致,默认值9,下文列出一些常用值
-s参数信号编号常用值
1:杀死并重新加载,也可用HUP表示
9:强制杀死,也可用KILL表示,默认值
15:正常停止,也可用TERM表示
rm
rm命令可以删除一个或多个容器
如果容器正在运行,则需要通过-f参数强制删除
docker rm [OPTIONS] CONTAINER [CONTAINER...]
options
- -f:强制删除,即使容器正在运行也可以删除
- -l:删除容器之间的网络关系,而不是容器本身
- -v: 删除容器和它挂载的卷
pause
pause命令可以暂停一个或多个正在运行的容器
docker pause CONTAINER [CONTAINER...]
CONTAINER:容器
unpause
unpause命令可以对一个或多个暂停的容器取消暂停
docker unpause CONTAINER [CONTAINER...]
CONTAINER:容器
create
create命令可以创建一个容器,但不运行它,在需要的时候可以使用start命令启动
和run命令的用法几乎一致,都会创建一个容器,如果容器依赖的镜像不存在都会从远程仓库拉取
run命令创建容器后会运行容器
create命令只是创建容器,不运行
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
options
- -i: 以交互模式运行,通常与-t一起使用
- -t: 为容器分配一个伪终端,通常与-i一起使用
- -d: 后台模式运行容器,并返回容器id
- -p list: 指定端口映射,格式为宿主机端口:容器端口
- -P: 随机分配端口映射
- –name string: 给容器指定一个名称
- -m bytes: 限制容器可以使用的内存大小
- -v list: 把宿主机的磁盘路径挂载到容器的某个路径
- –volumes-from list: 绑定别的容器某个路径到此容器的某个路径
- -w: 指定容器的工作目录,默认是根目录
- –rm: 当容器停止运行时自动删除
- –hostname string: 指定容器的主机名
IMAGE:镜像
COMMAND:需要运行的命令
ARG:命令的参数
exec
exce命令可以在一个运行中的容器中执行一个命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
options
- -d: 命令在后台运行
- -i:保持标准输入,通常和-t一起使用
- -t: 分配一个伪终端,通常和-i一起使用
- -w string: 指定容器的路径
CONTAINER:容器
COMMAND:要执行的命令
ARG:命令的参数
ps
ps命令可以列出所有容器的列表,查看容器的基本信息。不加任何参数的情况下,默认只展示正在运行的容器
docker ps [OPTIONS]
options
- -a: 显示所有容器,默认只显示正在运行的
- -f filter: 根据条件过滤容器,过滤条件详见下文
- -n int:显示最后创建的n个容器,包含所有状态
- -l: 显示最新创建的容器,包含所有状态
- -q: 只显示容器id
- -s: 显示容器大小,默认不显示该列
- –no-trunc:显示内容不截断,默认情况下显示的容器是截断后的信息
- -f参数表示根据条件过滤搜索出来的镜像
KEY的可选值如下
id: 根据容器id过滤
name: 查看容器名称中包含给定字段的容器
exited: 根据容器退出的错误码进行过滤
status: 根据容器的状态进行过滤,状态可选值有:created、paused、exited、dead、running、restarting、removing
before: 只显示在某个容器之前创建的容器
since: 只显示在某个容器之后创建的容器
volume: 过滤绑定了某个目录的容器,只针对运行中的容器
publish: 根据宿主机端口过滤,只针对运行中的容器
expose: 根据容器端口过滤,只针对运行中的容器
inspect
inspect命令可以获取一个或多个容器或者镜像的元数据信息
元数据信息可以理解为容器或者镜像的详情,它比ps命令显示的内容要详细的多。比如说端口映射、挂载目录等,显示格式为json类型
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
options
- -f string: 格式化输出结果,inspect默认显示整个文件的详情,-f参数可以指定只显示某些属性
- –s: 只对容器有效,显示容器的配置文件行数和大小,显示的结果中会多出SizeRw、SizeRootFs两个参数
- –type string: 指定要inspect的类型,container表示容器,image表示镜像,默认是容器。比如我有一个tomcat镜像,同时有一个名称为tomcat的容器,就可以用–type参数来指定要inspect是tomcat容器还是tomcat镜像
stats
stats命令可以可以监控容器的资源使用情况,如cpu使用情况、内存使用情况等。每秒刷新一次,直到使用ctrl+c退出
docker stats [OPTIONS][CONTAINER...]
options
- -a filter: 显示所有容器的资源使用情况,默认只显示正在运行的
- –format string:格式化输出结果
- –no-stream: 不间隔刷新,只显示第一次统计结果
- –no-trunc: 不截断显示信息,默认情况下有些字段只显示简略信息,如容器id
CONTAINER:容器
top
top可以查看容器的进程信息,docker exec CONTAINER ps也可以查看容器的进程。
不同的是,前者查看的是容器运行在宿主机的进程id。后者查看的是容器内的进程id
docker top CONTAINER [ps OPTIONS]
options
ps可选命令
CONTAINER:容器
rename
rename可以对容器进行重命名,在容器run时如果没有使用–name参数指定容器名称,可以使用rename进行命名
docker rename CONTAINER NEW_NAME
attach
attach可以连接到容器内,这个容器必须是正在运行的容器,不是运行状态时,会报错
当使用ctrl+c或exit等命令退出容器时,会导致容器停止运行。所以,不建议在生产环境使用该命令。生产环境可以使用exec命令进入容器
docker attach [OPTIONS] CONTAINER
options
- –sig-proxy=false boolean: 默认true,为false时可以防止容器遇到ctrl+c退出信号时停止运行
CONTAINER:容器
update
update可以对容器的配置进行更新
docker update [OPTIONS] CONTAINER [CONTAINER...]
options
- -m bytes: 指定容器的内存大小,单位可选b、k、m、g
- –memory-swap bytes:–cpu demecial:cpu资源,如1.5表示可以使用宿主机的1.5个cpu资源
- –cpuset-cpus string:容器可以使用宿主机的cpu内核编号,0-3表示4个内核都可以使用,1,3表示只能使用1和3号内核
- –restart string: 指定容器的退出的重启策略。no:不重启;on-failure:容器非正常退出时重启;on-failure:3:非正常退出时重启3次;alaways:总是重启;unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
- –pids-limit int: 限制容器进程或线程的数量,默认-1表示不限制
CONTAINER:容器
logs
查看容器的日志
docker logs [OPTIONS]
options
- -f: 跟踪日志的实时输出
- –until string:查看某个时间点之前的日志,格式:2021-06-03T19:30:20Z。或使用相对时间10m,表示10分钟之前
- –since string:查看某个时间点之后的日志,格式:2021-06-03T19:30:20Z。使用相对时间10m,表示10分钟之内
- -n int: 查看最后几行日志,默认显示全部
- -t: 日志中显示时间戳
- –tail=1000 (查看容器前多少行的日志)
CONTAINER:容器
wait
wait命令可以阻塞一个或多个容器直到容器退出并打印出他们的退出代码
docker wait CONTAINER [CONTAINER...]
CONTAINER:容器
port
列出端口的映射关系
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
CONTAINER:容器
PRIVATE_PORT:容器端口
PROTO:端口使用的协议
export
export命令可以将容器打包到一个文件中,它和save命令比较容易混淆
export和save的不同之处在于:export打包的是容器,save打包的是镜像
export打包的是容器当时的快照,至于容器的历史记录和元数据信息都会丢失。还有,export的文件在被import成一个镜像时,可以重新指定镜像的名称和版本号
docker export [OPTIONS] CONTAINER
options
- -o string:指定打包文件
CONTAINER:容器
import
import可以从本地文件或远程文件中导入镜像到本地仓库
如果是从文件中导入,这个文件需要是export命令导出的文件
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
options
- -m string: 添加描述信息
- -c list: 对创建的容器使用dokerfile指令
file:文件地址
URL:URL地址
-:从标准输入终端导入,通常和linux中的cat命令一起使用
REPOSITORY:本地镜像仓库地址
TAG:镜像版本号