1、 docker login
docker login [OPTIONS] [SERVER]
[SERVER] 远程仓库地址
[OPTIONS]的常用值
-u string 用户名
-p string 密码
2、 docker search
docker search [OPTIONS] TERM
[OPTIONS]
-f filter 根据条件过滤镜像
-no-trunc 显示完整镜像描述。默认情况下,搜索出来的镜像的描述太长会隐藏,no-trunc参数会让镜像信息完整展示出来
--limit 限制搜索出来的镜像个数,最大不超过100个,默认25个
--format 指定镜像显示的格式
-f参数表示根据条件过滤搜索出来的镜像 语法如下:
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参数用来指定搜索出来的镜像的显示的格式,语法如下:table表示使用表格的方式显示,支持\t格式
docker search --format "[table] {{COLUMN}}[{{COLUMN}}...]" TERM
COLUMN的可选值如下:
.NAME 显示镜像的名称列
.Description 显示镜像的描述列
.StarCount 显示镜像的热度一列
.IsOfficial 显示镜像是否是官方发布一列
.IsAutomated 显示镜像是否自动构建一列
如:docker search -f is-official=false --format "table{{.Name}}\t{{.StarCount}}" centos
docker search 列字段含义
NAME |
DESCRIPTION |
STARS |
OFFICIAL |
AUTOMATED |
镜像名称 |
镜像描述 |
镜像热度,类似于github的starts |
是否是官方发布 |
是否自动构建 |
3、 docker push
docker push [OPTIONS] NAME[:TAG]
[OPTIONS]:可选参数
NAME:镜像名称
TAG:镜像版本号,可省略,默认是latest
[OPTIONS]常用值
--disable-content-trust:推送时远程仓库不校验签名,默认true
4、 docker pull
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
[OPTIONS]:可选参数
NAME:镜像名称
TAG:镜像版本号,可省略,默认是latest
DIGEST:镜像的摘要,每个镜像都有对应的名称、id、摘要信息,每个摘要信息能唯一代表一个镜像,如
OPTIONS常用值
-a:拉去镜像的所有版本号
--disable-count-trust:拉取时远程仓库不校验签名,默认true
-q:安静拉取,拉取过程中不展示详细信息
5、 docker images
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS:可选参数
REPOSITORY:镜像路径
TAG:镜像版本号
OPTIONS的常用值
-a:显示所有镜像,包含中间映像(默认中间映像是隐藏的)
-f filter :根据条件过滤镜像
-q:只显示镜像id
no-trunc:显示完整的镜像id。默认情况下,镜像id只显示前12位,no-trunc参数会将镜像id完整的显示出来
--digests:显示镜像的摘要信息
--format:指定镜像显示的格式
docker images -f KEY=VALUE [REPOSITORY[:TAG]]
KEY的可选值如下:
dangling boolean:过滤悬挂的镜像,如:dangling=true表示只显示悬挂的镜像
label string:根据标签过滤,如:label=version表示显示有version标签的镜像,lavel=version=1.0表示显示
version=1.0的镜像
before image:显示在某个镜像之前创建的镜像,如 before=centos:5.8表示显示在centos:5.8这个镜像之前创建的镜像
since image: 显示在某个存在之后创建的镜像,如:since=centos:5.8表示显示在centos:5.8这个镜像存在之后的镜像
reference string:模糊匹配 如:reference=cent*:5.*,显示名称以cent开头版本号以5开头的镜像
--format参数用来指定镜像显示格式,语法如下。table表示使用表格的方式显示,支持\t格式
docker images --format "[table]{{COLUMN}}[{{COLUMN}}...]" [REPOSITORY[:TAG]]
COLUMN的可选值如下:
.ID:显示进行的名称列
.Repository:显示进行的描述列
.Tag:显示镜像的热度一列
.Digest:显示镜像是狗屎官方发布的一列
.CreateSince:显示镜像是否是自动构建的一列
.CreatedAt:显示镜像是否自动构建的一列
.Size:显示镜像是否自动构建的一列
6、 docker rmi 可以删除一个或者多个本地镜像,通常情况应该用rm表示删除命令,但是在dokcer命令中rm表示删除容器,
所以用rmi表示删除镜像,其中i是image的首字母
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS:可选参数
IMAGE:镜像id或者仓库路径名称
OPTIONS的常用值
-f :强制删除,如果镜像有对应的容器正在运行,则不允许直接删除镜像,需要强制删除
--no-prune:不删除该镜像的过程镜像,默认是删除的
7、 docker tag 命令可以基于一个镜像,创建一个新版本的镜像并归入本地仓库,吃屎该镜像在仓库中存在两个版本,
可以根据这两个镜像创建不同的容器
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
SOURCE_IMAGE:原镜像
TARGET_IMAGE:新镜像
TAG:镜像版本号
常用写法如:
基于redis:latest镜像创建my-redis1.0镜像,并把新镜像归入redis-lib仓库
docker tag redis:latest redis-lib/my-redis:1.0
8、 docker history 查看某一个镜像的创建历史。也就是镜像的提交记录
docker history [OPTIONS] IMAGE
OPTIONS :可选参数
IMAGE:镜像
OPTIONS常用值:
-H boolean:已可读的格式打印日期和大小,默认true
-q:只显示镜像id
no-trunc:输出结果不截取,正常情况下查看到的结果如果某一列太长会被截取
--format string:指定镜像现实的格式
--format用来指定镜像的显示格式,语法如下。table表示是用表格的方式显示,支持\t格式
docker history --format "[table]{{COLUMN}}[{{COLUMN}}...]" IMAGE
COLUMN可选值如下:
.ID:镜像的ID
.CreateSince:镜像的创建时长
.CreatedAt:镜像创建的时间戳
.CreatedBy:镜像创建使用的命令
.Size:镜像的大小
.Comment:镜像的评论
常用写法如:
docker history --format "table{{.ID}}\t{{.CreatedAt}}\t{{.CreatedBy}}" centos
9、 docker save 把一个镜像或者多个镜像打包到一个文件,需要注意和export命令的区别
save命令打包的是镜像,包含镜像的所有信息
export命令打包的是容器,只是保存容器当时的快照,历史记录和云数据信息将会丢失
docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS:可选参数
IMAGE:镜像
OPTIONS的常用值
-o string :指定目标文件,和linux原生命令>有相同作用
常见用法如:
docker save centos redis > /home/my-images.tar
docker save -o /home/my-images.tar centos redis
10、docker load 从指定文件中加载镜像,该文件需要是save命令保存的文件
docker load [OPTIONS]
OPTIONS:可选参数
OPTIONS的常用值
-i string :指定文件路径
-q:安静模式输出
常见用法:
docker load < /home/my-images.tar
docker load -i /home/my-images.tar
11、docker run 创建一个容器并运行,如果创建容器的镜像不存在则会从远程镜像仓库下载
运行容器的同事还能给容器发用一个命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS:可选参数
IMAGE:镜像
COMMAND:需要运行的命令
ARG:命令的参数
OPTIONS的常用值:
由于run命令的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:指定容器的主机名
12、docker start 启动一个或者多个已停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS:可选参数
CONTAINER:容器
OPTIONS的常用值:
-a:讲哦容器的标准输出或者标准错误附加到终端
-i:为容器附加一个标准输入终端
13、docker restart 对一个或者多个容器进行重启。如果容器是未启动的则会重启,正在运行的则会重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS:可选参数
CONTAINER:容器
OPTIONS的常用值
-t int:在重启之前等待几秒,默认10秒
14、docker stop 停止一个或者多个正在运行的容器
kill命令也可以停止容器
不同的是stop命令允许容器在停止之前有一定的时间来进行额外操作,如释放连接,关闭请求等
kill命令则会直接强制杀死容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS:可选参数
CONTAINER:容器
OPTIONS常用值:
-t int:等待n秒后如果还没停止,直接杀死,默认10秒
15、docker kill 可以杀死一个或者多个正在运行的容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS:可选值
CONTAINER:容器
OPTIONS的常用值:
-s string:给容器发用一个信号,信号编号和linux原生命令kill的幸好编号一致,默认值9,
-s参数信号编号常用值
1:杀死并重新加载,也可用HUP
9:强制杀死,也可用KILL
15:正常停止,也可用TERM
16、docker rm 删除一个或者多个容器
如果容器正在运行,则需要通过-f参数强制删除
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS:可选参数
CONTAINER:容器
OPTIONS的常用值
-f:强制删除,即容器正在运行也可以删除
-l:删除容器之间的网络关系,而不是容器本身
-v:删除容器和它挂载的卷
17、docker pause 暂停一个或者多个正在运行的容器
docker pause CONTAINER [CONTAINER...]
18、docker unpause 可以对一个或者多个暂停的容器取消暂停
docker unpause CONTAINER [CONTAINER...]
19、docker create 可以创建一个容器,但不运行它,在需要的时候可以start命令启动,和run命令的用法几乎一致,
都会创建一个容器,如果容器依赖的镜像不存在都会从远程仓库拉取
run命令创建容器后并运行容器
create命令只创建容器,不运行
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
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 :指定容器的主机名
20、docker exec 在一个运行中的容器中执行一个命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS:可选参数
CONTAINER:容器
COMMAND:要执行的命令
ARG:命令参数
OPTIONS的常用值
-d:命令在后台执行
-i:保持标准输入,通常与-t一起使用
-t:分配一个伪终端,通常与-i一起使用
-w string:指定容器的路径
常见用法:
在容器中执行pwd命令
docker exec centos pwd
21、docker ps 列出所有容器列表,查看容器基本信息。不加任何参数情况下,默认列出正在运行的容器
CONTAINER ID :容器id
IMAGE:对应的镜像
COMMAND:容器启动时运行的命令
CREATED:创建时间
PORTS:绑定的端口
NAMES:容器的名称
docker ps [OPTIONS]
OPTIONS:可选参数
OPTIONS的常用值
-a :显示所有容器,默认只显示正在运行的
-f filter:根据条件过滤容器
-n int : 显示最后创建的几个容器,包含所有状态
-l:显示最新创建的容器,包含所有状态
-q:只显示容器id
-s:显示容器的大小,默认不显示该列
--no-trunc:显示内容不截断,默认情况下显示的容器是截断后的信息
docker ps -f KEY=VALUE
KEY的可选值
id:根据容器id过滤
name:查看容器名称中包含的给定字段的容器
exited:根据容器退出的错误码进行过滤
status:根据容器的状态进行过滤,状态可选值有:created、paused、exited、dead、running、restarting、removing
before:只显示在某个容器之前创建的容器
since:只显示在某个容器之后创建的容器
volume:过滤绑定了某个目录的容器,只针对运行中的容器
publish:根据宿主机的端口过滤,只针对运行中的容器
expose:根据容器端口过滤,只针对运行中的容器
22、docker inspect 获取容器或者镜像的元数据
元数据信息可以理解为容器或者镜像的详情,他比ps命令显示的内容要详细的多,显示格式是json类型
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
OPTIONS:可选参数
CONTAINER:容器
IMAGE:镜像
OPTIONS的常用值
-f string : 格式化输出结果,inspect默认显示整个文件的详情,-f参数可以指定只显示某些属性
--s:只对容器有效,显示容器的配置文件行数和大小,显示的结果中会多出SizeRw/SizeRootFs两个参数
--type string:指定要inspect的类型,container表示容器,image表示镜像,默认是容器。
23、docker stats 监控容器资源的使用情况,每秒刷新一次,直到使用ctrl+c退出
docker stats [OPTIONS] [CONTAINER...]
OPTIONS :可选参数
CONTAINER :容器
OPTIONS的常用值
-a filter :显示所有容器的资源使用情况,默认只显示正在运行的
--format string: 格式化输出结果
--no-stream:不间隔刷新,只显示第一次统计结果
--no-trunc:不截断显示信息,默认情况下有些字段只显示简略信息
CONTAINER ID |
NAME |
CPU % |
MEM USAGE/LIMIT |
MEM % |
NET I/O |
BLOCK I/O |
PIDS |
容器id |
容器名称 |
cpu使用百分比 |
使用内容大小/最大可用内存 |
内存使用百分比 |
网络IO |
磁盘IO |
容器内线程或进程的数量 |
24、docker top 查看容器中运行的进程信息
top可以查看容器的进程信息,docker exec CONTAINER ps也可以查看容器的进程
前者查看的是容器运行在宿主机的进程id,后者查看的是容器内的进程id
docker top CONTAINER [ps OPTIONS]
CONTAINER:容器
OPTIONS:ps命令的可选参数
常用写法
查看centos镜像的宿主机进程id
docker top centos
25、docker rename 重命名容器
rename可以对容器进行重命名,在容器run时如果没有使用--name参数指定容器名称,可以用rename命令进行命名
docker rename CONTAINER NEW_NAME
26、docker attach 连接到容器内
attach 可以连接到容器内,这个容器必须是正在运行的容器,不是运行状态时,会报错
当使用ctrl+c或者exit等命令退出时,会导致容器停止运行,所以,不建议在生产环境中使用该命令。生产环境可以
使用exec命令进入容器
docker attach [OPTIONS] CONTAINER
OPTIONS:可选参数
CONTAINER:容器
OPTIONS常用值
--sig-proxy=false boolean:默认是true,为false时可以防止容器遇到ctrl+c退出信号时停止运行
27、docker update 更新一个或者多个容器的配置
docker update [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS:可选参数
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表示不限制
28、docker logs 查看容器日志
docker logs [OPTIONS] CONTAINER
OPTIONS:可选参数
CONTAINER:容器
OPTIONS的常用值
-f:跟踪日志的实时输出
--until string:查看某个时间点之前的日志,格式:2020-07-13T13:47:20Z,或使用相对时间10m,表示10分钟之前
--since string:查看某个时间点之后的日志,格式:2020-07-13T13:47:20Z, 或使用相对时间10m,表示10分钟之内
-n int:查看最后几行日志,默认显示全部
-t :日志中显示时间戳
29、docker wait 阻塞容器,直到容器退出并打印它的退出代码
wait命令可以阻塞一个或者多个容器直到容器退出并打印它们的退出代码
docker wait CONTAINER [CONTAINER...]
CONTAINER:容器
30、docker port 列出端口的映射关系
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
CONTAINER:容器
PRIVATE_PORT:容器端口
PROTO:端口使用的协议
31、docker export 将容器打包成一个文件
export命令可以将容器打包到一个文件中,和save命令容器混淆
export和save的不同之处在于:export打包的是容器,save打包的是镜像
export打包的是容器当时的快照,至于容器的历史记录和元数据信息都会丢失,还有,export的文件在被import成一个镜像时,
可以重新指定镜像的名称和版本号
docker export [OPTIONS] CONTAINER
OPTIONS:可选参数
CONTAINER:容器
OPTIONS的常用值
-o string:指定打包文件
常见用法:
将my-boot容器打包到my-boot.tar文件
docker export -o /tmp/my-boot.tar my-boot
32、docker import 从本地文件或者远程文件导入镜像到本地仓库
import可以从本地文件或者远程文件中导入镜像到本地仓库
如果是从文件导入,这个文件需要是export命令导出的文件
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
OPTIONS:可选参数
file:文件地址
URL:URL地址
-:从标准输入终端导入,通常和linux的cat命令一起使用
REPOSITORY:本地镜像仓库地址
TAG:版本号
OPTIONS的常用值
-m string :添加描述信息
-c list :对创建的容器使用dockerfile命令
import常见用法
1、 从my-boot.tar文件创建镜像
cat /tmp/my-boot.tar | docker import -
2、 从my-boot.tar文件导入镜像
docker import /tmp/my-boot.tar
3、 从my-boot.tar文件创建镜像,并指定镜像名称为my-boo-test、版本号为1.0
docker import /tmp/my-boot.tar my-boot-test:1.0
4、 从my-boot.tar文件创建镜像,备注信息为测试,并指定镜像名称为my-boot-test、版本号为1.0
docker import -m "描述信息" /tmp/my-boot.tar my-boot-test:1.0
5、 从远程服务器的my-boot.tar文件创建镜像
docker import http://192.168.100.1:8080/images/my-boot.tar