Dcoker命令详解
Collapsible Text Box
名词解释(可能会让人产生误解)
REPOSITORY
仓库(是注册服务器与镜像名称组合起来的,)
NAME
名称(镜像的name属性,不包含注册服务器)
IMAGE
镜像,通常代指REPOSITORY+NAME的组合
TAG
标签(通常代表了镜像的版本)
CONTAINER
容器唯一标识(通常是ID或者简短ID,或者容器的names),可以通过dockers ps -a查看
DIGEST
文摘,通常指镜像的摘要
OPTIONS
选项
Usage
命令格式(用法,语法)
1.镜像仓库
- search
从docker hub 查找镜像 Usage: docker search [OPTIONS] TERM OPTIONS:
|
- pull
从镜像仓库中拉取或者更新指定镜像 Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST] OPTIONS:
|
- push
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库 Usage: docker push NAME[:TAG] 推送的镜像要重新将注册服务器添加到镜像名称中 |
- login
登录到服务器/私服,默认是登录到docker hub Usage: docker login [OPTIONS] [SERVER] SERVER默认为"https://index.docker.io/v1/" OPTIONS:
|
- logout
登出仓库 Usage: docker logout [SERVER] SERVER默认为"https://index.docker.io/v1/" |
2.本地镜像管理
- images
列出本地镜像。 Usage: docker images [OPTIONS] [REPOSITORY] OPTIONS:
|
- tag
新增镜像标签 Usage: docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] OPTIONS:
|
- save
保存镜像(载出镜像) Usage: docker save [OPTIONS] IMAGE [IMAGE...] Usage: docker save IMAGE > file|URL OPTIONS:
|
- load(加载save命令保存的镜像)
加载镜像(载入镜像) Usage: docker load [OPTIONS] Usage: docker load < file|URL
|
- import(加载export命令保存的容器,导入为镜像)
docker容器导入 Usage: docker import [OPTIONS] URL|- [REPOSITORY[:TAG]] demo: cat ss.tar | sudo docker import - ssr:test Usage: docker import - [REPOSITORY[:TAG]] < file|url demo: docker import - ssr:test < ss.tar OPTIONS:
|
- history
显示镜像历史记录 Usage: docker history [OPTIONS] IMAGE OPTIONS
|
- inspect
查看容器详细信息 Usage: docker inspect [OPTIONS] CONTAINER|IMAGE|TASK [CONTAINER|IMAGE|TASK...] OPTIONS:
使用实例: [root@izt4n97garwn1ni986vmhjz ~]# docker inspect -f '{{.NetworkSettings.IPAddress}}' 2b928dba921d 172.17.0.2 |
- rmi
删除本地一个或多少镜像(根据 IMAGE 删除,只有删除最后一个的时候,镜像才会删除) Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] OPTIONS:
|
- build
构建docker镜像 Usage: docker build [OPTIONS] PATH | URL | - OPTIONS说明:
|
3.容器生命周期管理
- create/run
create是创建一个新的容器但不启动它,实例请查看:https://docs.docker.com/engine/reference/commandline/run/#extended-description run是创建一个新的容器,并且启动它. Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...] Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS:
|
- start
启动一个或多个停止的容器 Usage: docker start [OPTIONS] CONTAINER [CONTAINER...] OPTIONS:
|
- rename
容器重命名 Usage: docker rename OLD_NAME NEW_NAME |
- stop/restart
停止/重启容器 Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...] Usage: docker restart [OPTIONS] CONTAINER [CONTAINER...] OPTIONS:
|
- kill
杀掉一个运行中的容器。 Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...] Options:
|
- stop和kill的区别:
kill是不管容器同不同意,我直接执行kill -9,强行终止; stop的话,首先给容器发送一个TERM信号,让容器做一些退出前必须的保护性、安全性操作,然后让容器自动停止运行,如果在一段时间内,容器还是没有停止,再进行kill -9,强行终止。 |
- pause/unpause
暂停/恢复容器的所有进程 Usage: docker pause [OPTIONS] CONTAINER [CONTAINER...] Usage: docker unpause [OPTIONS] CONTAINER [CONTAINER...] |
- rm
删除一个或者多个容器 Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...] OPTIONS:
|
- wait
阻塞运行直到容器停止,然后打印出它的退出代码。 Usage: docker wait [OPTIONS] CONTAINER [CONTAINER...] |
4.容器操作
- logs
获取容器的日志 Usage: docker logs [OPTIONS] CONTAINER Options:
|
- ps
列出容器 Usage: docker ps [OPTIONS] Options: -a, --all 列出所有容器(默认仅列出运行中的容器) -f, --filter value 根据条件过滤显示的内容 --format string 指定返回值的模版文件(格式化返回值) --help Print usage -n, --last int 列出最近创建的n个容器 -l, --latest 显示最后创建的容器 --no-trunc 不进行截断输出(显示所有选项的值) -q, --quiet 只显示容器编号(ID) -s, --size 显示总的文件大小 |
- top
容器运行时不一定有/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以使用docker top来实现查看container中正在运行的进程。(支持ps参数) Usage: docker top CONTAINER [ps OPTIONS] 可能有些难以理解,以下是实例 [root@izt4n97garwn1ni986vmhjz ~]# docker top 2b928dba921d UID PID PPID C STIME TTY TIME CMD root 4127 4116 0 Aug20 pts/1 00:00:00 bash 查看所有容器运行的程序,输出内容太多,我就不粘上了 [root@localhost ~]# for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done |
- stats
实时显示容器的资源使用情况 Usage: docker stats [OPTIONS] [CONTAINER...] Options:
|
- inspect
使用方式同镜像操作的inspect |
- export(容器只能通过crate/run的方式获得,而不能导入,只能导出)
比较专业的解释:将文件系统作为一个tar归档文件导出到STDOUT 个人理解:导出当前容器到本地(导出为import命令能加载的镜像),会丢历史和元数据,网上有的人解释为是commit和save命令的组合版. Usage: docker export [OPTIONS] CONTAINER Usage: docker export CONTAINER > file|URL Options:
看第二种使用方式可能有点懵.不要紧,咱们来看两个实例: e.g: docker export -o ./centos.tar e65720ef8e82 e.g: docker export e65720ef8e82 > ./centos.tar |
- attach
连接到正在运行中的容器。 Usage: docker attach [OPTIONS] CONTAINER Options:
当两个窗口同时连接一个容器,如果一个窗口阻塞,就会造成所有窗口同时阻塞,所以这种方式不推荐.好在官方提供了更好的一种连接方式(exec) |
- exec (我很喜欢用这个)
在运行的容器中执行命令 Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
|
- port
查看容器的端口信息 Usage: docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]] 示例: 查看容器的全部映射端口: [root@Ninemax-LPC3 data]# docker port port1 5001/tcp -> 0.0.0.0:5001 根据容器使用的宿主机端口查看映射 [root@Ninemax-LPC3 data]# docker port port1 5001 0.0.0.0:5001 |
- events
从服务器获取实时事件(进行事件监听,打个比方说吧,比如你使用exec访问了某一个容器,就会被监听到,监听的事件可不止容器哦) Usage: docker events [OPTIONS] Options:
Docker会监听如下事件: 容器事件: attach, commit, copy, create, destroy, detach, die, exec_create, exec_detach, exec_start, export, health_status, kill, oom, pause, rename, resize, restart, start, stop, top, unpause, update 镜像事件: delete, import, load, pull, push, save, tag, untag 插件事件(试验): install, enable, disable, remove 数据卷事件: create, mount, unmount, destroy 网络事件: create, connect, disconnect, destroy daemon事件: reload 附带一份解释比较详细的网文:https://www.centos.bz/2017/01/docker-events-get-real-time-events-from-the-server/ |
5.容器rootfs命令
- commit
从容器创建一个新的镜像 Usage: docker commit [OPTIONS] CONTAINER [NEW_REPOSITORY[:TAG]] OPTIONS:
|
- cp
用于容器与主机之间的数据拷贝 Usage: docker cp CONTAINER:PATH HOSTDIR|- or Usage: docker cp SRC_PATH|- CONTAINER:DEST_PATH |
- diff
检查容器内文件结构的更改 Usage: docker diff CONTAINER |
6.其他操作
- info
查看docker系统信息 Usage: docker info |
- version
显示docker版本信息 Usage: docker version |