Docker中常用命令介绍

拼搏现实的明天。 2022-02-14 02:31 395阅读 0赞

前言

对于初学docker的同学,docker命令可能只使用过一部分,今天我们仔细看看docker中一些常用的命令的用法和功能。

说明

docker命令

  1. 直接执行`docker`命令,你可以看到docker所支持的所有命令列表
  2. Commands:
  3. attach Attach local standard input, output, and error streams to a running container
  4. build Build an image from a Dockerfile
  5. commit Create a new image from a container's changes
  6. cp Copy files/folders between a container and the local filesystem
  7. create Create a new container
  8. diff Inspect changes to files or directories on a container's filesystem
  9. events Get real time events from the server
  10. exec Run a command in a running container
  11. export Export a container's filesystem as a tar archive
  12. history Show the history of an image
  13. images List images
  14. import Import the contents from a tarball to create a filesystem image
  15. info Display system-wide information
  16. inspect Return low-level information on Docker objects
  17. kill Kill one or more running containers
  18. load Load an image from a tar archive or STDIN
  19. login Log in to a Docker registry
  20. logout Log out from a Docker registry
  21. logs Fetch the logs of a container
  22. pause Pause all processes within one or more containers
  23. port List port mappings or a specific mapping for the container
  24. ps List containers
  25. pull Pull an image or a repository
  26. ..................................

- -help

  1. Run 'docker COMMAND --help' for more information on a command.
  2. 如果你对某一条命令不太了解,执行docker COMMAND --help 可以看到详细的用法和介绍

比如说docker images --help

  1. [root@localhost ~]# docker images --help
  2. Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
  3. List images
  4. Options:
  5. -a, --all Show all images (default hides intermediate images)
  6. --digests Show digests
  7. -f, --filter filter Filter output based on conditions provided
  8. --format string Pretty-print images using a Go template
  9. --no-trunc Don't truncate output
  10. -q, --quiet Only show numeric IDs

下面我们看看docekr中一些常用的命令

基本信息查看

docker version

  1. 显示 Docker 版本信息 docker version [OPTIONS]

参数说明:





















OPTIONS 用途 示例
  查看版本信息 docker version
–format(-f) 指定docker version的返回值模板 docker version —format ‘{ {.Server.Version}}’

docker info

  1. 显示 Docker 基本信息、镜像数、容器数、占用空间等等 docker info [OPTIONS]

参数说明:





















OPTIONS 用途 示例
  查看默认的docker信息 docker info
–format(-f) 指定docker info的返回值模板 docker info —format ‘{ {json .}}’ 以json形式返回结果

镜像操作

docker images

  1. 查看Docker镜像信息 docker images [OPTIONS] [REPOSITORY[:TAG]]

参数说明:














































OPTIONS 用途 示例
  查看本地所有镜像(但不包括悬空镜像) docker images
–all(-a) 查看本地所有镜像(包括悬空镜像) docker images -a
–quiet(-q) 查看本地镜像的镜像ID信息 docker images -q
–digests 显示镜像的摘要写信息
–no-trunc 查看完整的镜像信息
–format 指定返回值的模板文件 docker images -format “{ {.ID}}”
–filter(-f) 显示满足条件的镜像信息 docker images -f dangling=true

指定仓库名、标签查询镜像信息 : docker images ubuntu:16.04

docker tag

  1. 标记本地镜像,将其归入某一仓库。 docker tag [SOURCE_IMAGE[:TAG]/IMAGE_ID] TARGET_IMAGE[:TAG]

用法示例:






















命令 用途
docker tag busybox:test zhengql/busybox:v1.0.1 将镜像busybox:test标记为一个新的镜像zhengql/busybox:v1.0.1
docker tag busybox zhengql/busybox:v1.0.1 将镜像busybox(默认tag为latest)标记为一个新的镜像zhengql/busybox:v1.0.1
docker tag 0e5574283393 zhengql/httpd:v1.0.2 将ID为0e5574283393的镜像标记为一个新的镜像zhengql/busybox:v1.0.2

docker rmi

  1. 删除本地一个或多个镜像 docker rmi [OPTIONS] IMAGE [IMAGE...]

用法示例:






























命令 用途
docker rmi fd484f19954f 删除指定ID的某个镜像
docker rmi zhengql/busybox:v1.0.1 删除指定名称和标签的某个镜像
docker rmi 0e5574283393 f753707788c5 1e0c3dd64ccd 删除指定ID的多个镜像
docker rmi zhengql/busybox:v1.0.1 hello-world:latest httpd:latest 删除指定名称和标签的多个镜像
docker rmi -f fd484f19954f 强制删除镜像

docker build

  1. 用于使用 Dockerfile 构建镜像 : docker build [OPTIONS] PATH|URL|-

docker build的可选参数有很多,此处介绍一些常用的,详细介绍可以参考这里

参数说明:


































OPTIONS 用途
–file(-f) 指定要使用的Dockerfile文件路径
-m 设置内存最大值
–no-cache 创建镜像的过程不使用缓存
–quiet(-q) 安静模式,成功后只输出镜像 ID
–force-rm 构建镜像过程中删除中间容器
–tag(-t) 镜像的名字及标签,通常 name:tag 或者 name 格式

用法示例:


























命令 用途
docker build . 通过当前目录的DockerFile构建镜像(path为”.”)
docker build github.com/creack/docker-firefox 通过url地址所在目录下DockerFile构建镜像
docker build -t zhengql/myDemo:1.0 . 通过当前目录的DockerFile构建镜像并指定镜像的名称和tag (path为”.”)
docker build -f Dockerfile.debug . 通过当前目录下的DockerFile.debug构建镜像(path为”.”)

docker save

  1. 指定镜像保存成 tar 归档文件 docker save [OPTIONS] IMAGE [IMAGE...]

参数说明:
















OPTIONS 用途 示例
–output(-o) 输出到的文件 docker save -o my_demo_v1.tar zhengql/myDemo:v1

docker load

  1. 基于tar文件创建镜像:docker load [OPTIONS]

参数说明:
















OPTIONS 用途 示例
–input(-i) 指定要读取的tar文件 docker save -i my_demo_v1.tar

这样看来 docker loaddocker save 的功能区别就很明显,tar文件由 docker save 命令创建,同时docker load命令可以读取tar文件来构建镜像

仓库类操作

docker login/logout

  1. 登录/登出某Docker镜像仓库:docker login/logout [OPTIONS] [SERVER]

此处介绍 docker login基本用法
参数说明:































OPTIONS 用途 示例
  默认登录官方仓库 docker login
  登录指定私有仓库 docker login localhost:5000
–username(-u) 指定登录用户名
–password(-p) 指定登录密码 docker login -u zhengql -p 6666666
  1. Docker Hub查找镜像 : docker search [OPTIONS] TERM

参数说明:














































OPTIONS 用途 示例
  查看官方仓库中名称包含busybox的镜像 docker search busybox
–filter(-f) 设置搜索条件 docker search —filter stars=3 busybox
–format 设置返回结果的模板 docker search —format “{ {.Name}}: { {.StarCount}}” busybox
–limit 最大搜索结果数量,默认25 docker search —limit=10 busybox
–no-trunc 显示完整的镜像描述 docker search —no-trunc busybox
–stars(-s) 列出starts数不小于指定值的镜像(已废弃,可使用-f) docker search —stars=3 busybox
–automated 列出 automated build类型的镜像(已废弃,可使用-f) docker search —filter is-automated busybox

docker pull

  1. 从镜像仓库中拉取或者更新指定镜像 : docker pull [OPTIONS] NAME[:TAG|@DIGEST]

参数说明:




































OPTIONS 用途 示例
  从Docker Hub下载java最新版镜像 docker pull java
  从私有仓库下载hello-world镜像 docker pull 10.200.0.204:5000/hello-world:v1
  通过摘要(digest )从仓库下载hello-world镜像 docker pull busybox@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
–all-tags(-a) 拉取所有 tagged 镜像 docker pull -a java
–disable-content-trust 忽略镜像的校验,默认开启

docker push

  1. 将本地的镜像上传到镜像仓库 : docker push [OPTIONS] NAME[:TAG]

用法示例:


















命令 用途
docker push myDemo:v1 上传本地镜像myDemo:v1到镜像仓库中
docker push 10.200.0.204:5000/myDemo:v1 上传本地镜像10.200.0.204:5000/myDemo:v1到私有仓库(10.200.0.204:5000)中

容器生命周期管理

docker run

  1. 创建一个新的容器并运行 : docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run的可选参数有很多,此处介绍一些常用的,详细介绍可以参考这里

参数说明:






























































































OPTIONS 用途
–detach(-d) 在后台运行容器并打印容器ID
–name 为容器指定名称
–interactive(-i) 以交互模式运行容器,通常与 -t 同时使用
–tty(-t) 为容器重新分配一个伪输入终端,通常与 -i 同时使用
–publish(-p) 将容器的端口发布到主机
–publish-all(-P) 将所有公开的端口发布到随机端口
–cpu-shares(-c) CPU份额(相对权重)
–hostname(-h) 设置容器主机名
–env(-e) 设置环境变量
–memory(-m) 拉取所有 tagged 镜像
–user(-u) 用户名或UID(格式:<name
–rm 退出时自动删除容器
–privileged 为此容器提供扩展权限
–workdir(-w) 容器内的工作目录
–workdir(-w) 容器内的工作目录
–workdir(-w) 容器内的工作目录
–volume(-v) 绑定一个卷
–volume-driver 容器的可选卷驱动程序
–volumes-from 从指定容器装载卷
–workdir(-w) 容器内的工作目录
–read-only 将容器的根文件系统挂载为只读

用法示例:






























命令 用途
docker run —name mydemo -d mydemo:latest 使用docker镜像mydemo:latest以后台模式启动一个容器,并将容器命名为mydemo。
docker run -P -d nginx:latest 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
docker run -p 8088:8011 -d mydemo:latest 使用镜像mydemo:latest以后台模式启动一个容器,将容器的 8011 端口映射到主机的 8088 端口,
docker run -v /data:/data -d mydemo:latest 使用镜像mydemo:latest以后台模式启动一个容器,并将主机的目录 /data 映射到容器的 /data。
docker run -it nginx:latest /bin/bash 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令

docker create

  1. 创建一个新的容器但不启动它 docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

该命令的用法与docker run相同,两者唯一的区别在于:

  • docker run:创建并启动容器
  • docker create:仅仅创建而不启动,需要手动docker start启动

docker create 适用于当需要提前设置容器配置,等在需要时直接启动的场景

docker start/stop/restart

  1. 启动/停止/重启一个或多个容器 docker start/stop/restart [OPTIONS] CONTAINER [CONTAINER...]

用法示例,此处以docker start为例:

通过容器名称操作:

  1. docker start mydemo1 mydemo2 mydemo3

通过容器id操作

  1. docker start b58b3ad0e9a5 f7076bf32313 fce289e99eb9

docker pause/unpause

  1. 暂停/恢复一个或多个容器中所有的进程 docker pause/unpause [OPTIONS] CONTAINER [CONTAINER...]

用法示例,此处以docker pause为例:

通过容器名称操作:

  1. docker pause mydemo1 mydemo2 mydemo3

通过容器id操作

  1. docker pause b58b3ad0e9a5 f7076bf32313 fce289e99eb9

docker kill

  1. 杀掉一个或多个正在运行的容器 docker kill [OPTIONS] CONTAINER [CONTAINER...]

参数说明:














OPTIONS 用途
–signal(-s) 发送信号到容器,默认发送KILL,也可通过 -s指定要发送的信号

用法示例:
将默认KILL信号发送到名为myDemo1,myDemo2(也可以使用容器ID)的容器:

  1. docker kill myDemo1 myDemo2

SIGHUP信号发送到名为ID为b58b3ad0e9a5的容器:

  1. docker kill --signal=SIGHUP b58b3ad0e9a5

注:关于Linux系统中信号的列表,可以参考这里

docker rm

  1. 删除一个或多个容器 docker rm [OPTIONS] CONTAINER [CONTAINER...]

参数说明:






























OPTIONS 用途 示例 说明
–force(-f) 强制删除正在运行的容器 docker rm -f myDemo1 myDemo2 强制删除容器myDemo1 myDemo2
–link(-l) 移除容器间的网络连接,而非容器本身 docker rm -l aaa 删除连接名aaa下引用的容器
–volumes(-v) 删除容器的同时删除与容器关联的卷 docker rm -v mydemo1 删除容器mydemo1,并删除容器挂载的数据卷

docker exec

  1. 在运行的容器中执行命令 : docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

参数说明:






































OPTIONS 用途
–detach(-d) 分离模式: 在后台运行
–interactive(-i) 开启标准输入,即使未与容器连接,也维持标准输入,通常与 -t 同时使用
–tty(-t) 分配一个伪终端,通常与 -i 同时使用
–privileged 为命令提供扩展权限
–evn(-e) 设置环境变量
–user(-u) 用户名或UID(格式:<name
–workdir(-w) 容器内的工作目录

用法示例:






















命令 用途
docker exec -d myDemo touch /tmp/execWorks 在后台运行的容器内 创建一个新文件/tmp/execWorks
docker exec -it -w /root myDemo 设置要执行的命令的工作目录
docker exec -i -t myDemo /bin/bash 在容器 myDemo 中开启一个交互模式的终端

容器操作

docker ps

  1. 查询当前容器列表 docker ps [OPTIONS]

参数说明:










































OPTIONS 用途
–all(-a) 显示所有容器
–filter(-f) 条件筛选容器
–format 设置查询结果的显示模板
–last(-n) 显示最后创建的容器(包括所有状态)
–latest(-l) 显示最新创建的容器(包括所有状态)
–no-trunc 不截断输出
–quiet(-q) 仅显示容器ID
–size(-s) 显示总文件大小

用法示例:






































命令 用途
docker ps 查询所有在运行中的容器信息
docker ps -a 查询所有状态全部的容器信息
docker ps -n 5 查询最近创建的5个容器信息
docker ps -q -a 查询所有的容器ID
docker ps —filter “name=abc” 查询名字包含abc的容器信息
docker ps —filter status=running 查询运行状态下的所有容器信息
docker ps —format “{ {.ID}}: { {.Command}}” 查询容器信息并以ID : Command形式显示结果

docker logs

  1. 获取容器的日志 docker logs [OPTIONS] CONTAINER

参数说明:


































OPTIONS 用途
–follow(-f) 跟踪日志输出
–tail 仅列出最新N条容器日志
–details 显示提供给日志的额外细节
–since 显示某个开始时间之后的所有日志
–until 显示某个截止时间之前的所有日志
–timestamps(-t) 日志头部显示时间戳

用法示例:


























命令 用途
docker logs -f mydemo 跟踪查看容器mydemo的日志输出
docker logs -f —tail=200 mydemo 查看容器mydemo最新200条日志并跟踪查看日志输出
docker logs -f -t —tail=200 mydemo 查看容器mydemo最新200条日志并跟踪查看日志输出,每条日志头部填充时间信息
docker logs -t —since=“2019-01-01T12:23:37” —until “2019-04-09T12:23:37” mydemo 查询指定时间段内的myDemo容器的日志

docker port

  1. 查看容器的端口映射情况:docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]

查看myDemo容器的端口映射情况:

  1. docker port myDemo
  2. 5000/tcp -> 0.0.0.0:5000

docker top

  1. 查看容器中运行的进程信息:docker top [OPTIONS] CONTAINER [ps OPTIONS]

查看容器myDemo的进程信息:docker top myDemo

  1. UID PID PPID C STIME TTY TIME CMD
  2. root 20195 20181 0 14:15 ? 00:00:00 registry serve /etc/docker/registry/config.yml

docker inspect

  1. 获取容器/镜像的元数据 : docker inspect [OPTIONS] NAME|ID [NAME|ID...]

参数说明:






























OPTIONS 用途 示例 说明
–format(-f) 指定返回值的模板文件 docker inspect -f “{ {.NetworkSettings.IPAddress}}” myDemo 显示容器的IP地址
–size(-s) 显示总的文件大小
–type 为指定类型返回JSON

docker wait

  1. 阻塞运行一个或多个容器,直到容器停止,然后打印出它的退出代码 docker wait [OPTIONS] CONTAINER [CONTAINER...]
  2. docker wait myDemo1 myDemo2

docker export

  1. 将容器的文件系统导出为tar文件包 docker export [OPTIONS] CONTAINER

参数说明:


















OPTIONS 用途 示例 说明
–output(-o) 将输入内容写到文件 docker export —output=“myDemo.tar” myDemo 将myDemo容器保存为tar归档文件

docker attach

  1. 连接到正在运行中的容器 docker attach [OPTIONS] CONTAINER

使用docker attach进入myDemo容器

  1. docker attach myDemo

其他命令

docker events

  1. 用于实时输出Docker服务器中发生的事件 docker events [OPTIONS]

参数说明:










































OPTIONS 用途 示例 说明
  听取事件 docker events
–filter(-f) 根据提供的条件过滤输出 docker events —filter ‘container=myDemo’ 过滤出指定容器的事件
–format(-f) 指定返回值的模板文件 docker events —format ‘{ {json .}}’ 事件以json格式输出
–since(-f) 显示自时间戳以来创建的所有事件 docker events —since 1483283804 输出指定时间之后的事件
–until(-f) 显示自时间戳之前创建的所有事件 docker events —until 1483283804 输出指定时间之前的事件

说明:docker events从服务器获取实时事件。这些事件因Docker对象类型而异。

具体的事件类型,可以参考这里。

总结

docker中的常用命令就介绍到这里啦,相信通过本文,可以对docker中常用的命令有一定的了解,当然了命令这么多,还是需要我们在使用过程中慢慢的融会贯通,熟能生巧。

参考

docker 命令参考文档

发表评论

表情:
评论列表 (有 0 条评论,395人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker命令超细介绍

      工欲善其事必先利其器,本文我们首先来给大家介绍下docker中的常用命令,只用对这些`常用命令`非常熟悉我们才能更好的来使用docker。 1.帮助命令   首先我