docker 命令大全

1. 镜像仓库

1.1 docker search [OPTIONS] TERM // 搜索镜像

选项说明示例
-f, --filter filter 根据条件筛选 --filter=is-automated=true // 只列出 automated build类型的镜像
--filter=stars=10 // 列出收藏数不小于指定值的镜像
--limit int 设置搜索结果的记录数量  
--no-trunc 搜索结果完整显示  

1.2 docker pull [OPTIONS] NAME[:TAG|@DIGEST] // 从镜像参数中拉取指定镜像

选项说明示例
-a 拉取所有tagged镜像  
--disable-content-trust 忽略镜像的校验,默认为true  

1.3 docker push [OPTIONS] NAME[:TAG] // 上传镜像到仓库(要先登录仓库)

选项说明示例
--disable-content-trust 忽略镜像校验

 docker login

 docker tag local-image:tagname sandea/spark:tagname

 docker push sandea/spark:tagname

1.4docker login -u 用户名 -p 密码 //登录

1.5 docker logout // 登出

2. 容器操作

2.1 docker ps [OPTIONS] //列出容器

选项说明示例
-a 显示所有容器,默认只显示正在运行的  
-f 过滤 docker ps -f name=hello
-n 10 显示最近创建的容器  
--no-trunc 显示全部描述  
-q 只显示简略ID  
-s 显示总的文件大小  

2.2docker inspect [OPTIONS] NAME|ID //获取容器或镜像的元数据

选项说明示例
-f filter 筛选  
-s 如果是一个容器的话返回其文件大小  
--type image/container 返回指定类型的JSON  

2.3 docker top CONTAINER // 查看指定容器中运行的进程

2.4 docker attach [OPTIONS] CONTAINER //进入正在运行的容器

选项说明示例
-detach-keys string    
--no-stdin    
--sig-proxy 默认为true --sig-proxy=false

2.5 docker events [OPTIONS] //从服务器获取实时事件

选项说明示例
-f filter 过滤  
--since timestamp 显示在指定时间之后发生的事件 docker events --since=1467302400
--until timestamp 显示在指定时间之前所产生的事件  

2.6 docker logs [OPTIONS] CONTAINER //获取容器的日志

选项说明示例
--details 显示详细日志  
-f 日志实时输出  
--since timestamp    
--until timestamp    
--tail num 输出最后多少行日志  
-t 显示日志时间  

2.7 docker wait CONTAINER... //等待容器停止并输出其退出代码

2.8 docker export -o fileName.tar CONTAINER //将指定容器打包到tar文档中,可以指定文件路径

2.9 docker port CONTAINER [PORT] // 列出容器的端口映射(容器端口与主机端口对应关系)

3.容器rootfs命令

3.1 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] // 从一个容器创建一个新的镜像

选项说明示例
-a 镜像作者  
-c 使用Dockerfile指令创建镜像  
-m 提交时的说明文字  
-p 在提交时,暂停容器  

3.2 docker cp // 容器与主机之间的文件复制

  
docker cp [options] CONTAINER:SRC_PATH TAR_PATH

从容器中复制到主机

docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

docker cp [options] SRC_PATH CONTAINER:TAR_PATH

从主机复制到容器中

docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

选项说明示例
-a 复制所有的gid/uid信息  
-L Always follow symbol link in SRC_PATH ??

3.3 docker difff CONTAINER // 查看容器中被修改过的文件或目录
说明:C - Change, D - Delete, A - Add

4. 容器生命周期管理

4.1 docker start [options] container... //启动一个或多个容器

选项说明示例
-a 启动后进入容器  
--detach-keys string ``  
-i Attach container's STDIN  

4.2 docker stop [options] container... //停止一个或多个容器

选项说明示例
-t int 多少秒后停止容器  

4.3 docker restart [options] container... //重启一个或多个容器

选项说明示例
-t int 多少秒后重启容器  

4.4 docker kill [options] container... // 杀死一个或多个容器

选项说明示例
-s string 给容器发送一个信号,默认为KILL  

4.5 docker rm [options] container... //删除一个或多个容器

选项说明示例
-f, -force 强制移除容器  
-l, -link 删除指定的连接  
-v, -volumes 删除容器及其挂载的卷  

4.6 docker pause container... // 暂停容器中所有的进程

4.7 docker unpause container... // 恢复容器中所有的进程

4.8 docker exec [options] container command [arg...] 在运行的容器中执行命令

选项说明示例
-d, --detach 分离模式, 在后台运行  
--detach-keys str ``  
-e, --env list 设置环境变量  
-i, --interactive 保持STDIN打开 与-t结合使用打开一个终端
-t, --tty 分配一个伪终端 与-i结合使用打开一个终端
--privileged Give extended privileges to the command  
-u, --user str 指定用户名或用户ID  
-w, --workdir str 在指定文件目录下执行相应的命令 -w /home container ls
-c 执行docker容器命令 docker exec -it zeppelin bash -c 'echo $ZEPPELIN_HOME'

4.9 docker run [optoins] image [command] [arg...] // 运行一个新容器中执行一个命令

选项说明示例
--add-host list 添加自定义的host-ip映射(host:ip)  
-a,
--attach list
将容器的stdin,stdout,stderr【标准输入,标准输出,错误输出】关联到本地shell中,在执行docker run时,将所有输入输出指定到本地shell中,若执行时携带此参数,可以指定将stdin,stdout,stderr的某一个或某几个关联到本地shell  
--blkio-weight uint16 限制容器读写权重,当宿主机有1个以上容器时,可以设置容器的读写优先权,权重值在10~1000之间,0为关闭权重(默认)  
--blkio-weight-device list 设置针对指定设备的权重,权重值在10~1000之间,且优先级高于blkio.weight --blkio-weight-device "/dev/sda:100" ubuntu:latest
--cap-add list 增强linux能力,在docker容器内限制了大部分的linux能力,在之前,需要开启这些功能需要结合--privileged开启特权模式才能使用这些参数,考虑到安全性,可以通过该参数来开启指定的linux功能【默认开启的功能及全部定义详见docker runc】,若参数为all则默认开启所有linux能力  
--cap-drop list 移除linux能力  
--cgroup-parent str 配置容器的控制组,继承该控制组的资源限制模式。  
--cidfile str 创建一个容器,并将该容器的id输出到某一文件中,若该文件存在,则会返回一个错误  
--cpu-period int 与参数--cpu-quota配合使用,用于设定cpu从新分配资源的时间周期,时间周期结束后,会对cpu进行重新分配  
--cpu-quota int 与参数--cpu-period配合使用,用于设定该容器在资源分配周期内占用cpu的时间,若容器设定--cpu-quota=1000000 --cpu-period=500000,则该容器在这个时间周期内权重为50%,这两个参数主要是提升宿主机内某一容器的权重比,可以用来解决宿主机内若干容器的资源抢占导致重要容器cpu性能不足的场景。该模式应用于Linux 的CFS模式  
--cpu-rt-period int --cpu-period的微秒版  
--cpu-rt-runtime int 在一个cpu资源分配周期内,优先保证某容器的cpu使用的最大微秒数。例如,默认周期为 1000000 微秒(1秒),设置 --cpu-rt-runtime=950000 可确保使用实时调度程序的容器每 1000000 微秒可运行 950000 微秒,并保留至少 50000 微秒用于非实时任务  
-c, --cpu-shares int CPU份额(相对权重),默认为0  
--cpus decimal 设置容器使用cpu的数量 --cpus=".5" ubuntu:latest
--cpuset-cpus str 设置容器允许在哪个cpu上执行该进程,譬如--cpuset-cpus="1,3"为指定在cpu 1 和cpu 3上执行,--cpuset-cpus="0-2"为指定在cpu0,cpu1,cpu2上执行 --cpuset-cpus="1,3"
--cpuset-mems str 同参数--cpuset-cpus,但该参数是作用于NUMA 架构的 CPU  
-d, --detach 后台运行容器并返回容器ID  
--detach-keys str 设置容器的键盘映射键位,在容器被链接到前台时,若宿主机的键盘键位与容器键位冲突,可以使用该指令对容器的键位进行重新映射  
--device list 向容器中添加主机设备  
--device-cgroup-rule list 将宿主机的设备添加到cgroup规则列表中  
--device-read-bps list 限制设备的读取速率(每秒字节数)  
--device-read-iops list 限制设备的读取速率(每秒IO操作次数)  
--device-write-bps list 限制设备的写速率(每秒字节数)  
--device-write-iops list 限制设备的写速率(每秒IO操作次数)  
--disable-content-trust 忽略镜像的校验(默认为true)  
--dns list 指定容器使用的DNS服务器,默认与主机一致  
--dns-option list 设置DNS选项,同修改/etc/resolv.conf文件  
--dns-search list 指定容器DNS搜索域名,默认与主机一致  
-entrypoint str 覆盖映像默认的entrypoint  
-e, --env list 给容器设置环境变量  
--env-file list 从指定文件读取环境变量  
--expose list 开放一个或多个端口  
--group-add list 为容器添加用户组  
--health-cmd str 执行一个健康检查命令  
--health-interval duration 配合--health-cmd参数,设置健康检查的执行的间隔时间(ms /s / m / h)  
--health-retries int 配合--health-cmd参数,设置健康检查命令失败重试的次数  
--health-statr-period duration 配合--health-cmd参数,设置健康检查的启动时间(ms /s / m / h)  
--health-timout 配合--health-cmd参数,设置健康检查命令超时时间(ms /s / m / h)
-h, --hostname str 指定容器的hostname  
--init 在容器中新增一个守护进程,来预防该容器出现僵尸进程的可能性  
-i, --interactive 以交互模式运行容器,常与-t同时使用  
--ip str 设置容器的IPv4地址  
--ip6 str 设置容器的IPv6地址  
--ipc str 使用IPC模式  
--isolation str 使用容器隔离, 该参数拥有三个值<br>(1)default 即与使用dockerd --exec-opt的参数默认效果相同<br>(2)process 使用linux内核命名空间进行隔离,该参数不支持windows环境。<br>(3)使用微软的Hyper-V虚拟技术进行隔离,该参数仅限windows环境  
--kernel-memory bytes 限制该容器内核的内存使用  
-l, --label list 设置该容器的元数据  
--label-file list 通过本地文件导入元数据至该容器  
--link list 指定容器间的关联,使用其他容器的IP、env等信息  
--link-local-ip list 容器IPv4/IPv6链路本地地址  
--log-driver str 设置日志工具,用于动态收集日志  
--log-opt list 配合参数--log-driver使用,用于日志配置  
--mac-address str 设置该容器mac地址  
-m, --memory bytes 设置容器使用的最大内存  
--memory-reservation bytes 软限制该容器的内存使用,当宿主机内存空闲时,该容器的内存使用可以一定比例超出限制,但当宿主机内存紧张时,会强制该容器内存使用限制在该参数之内  
--memory-swap bytes 内存交换分区大小限制。配合参数--memory使用,且最小内存交换限制应该大于内存限制。该参数有4种情况:<br> (1)不设置--memory与该参数:则该容器默认可以用完宿舍机的所有内存和 宿主机 swap 分区。<br> (2)设置--memory 50MB 不设置--memory-swap(默认为0):则--memory-swap值等于限制内存大小,即该容器能够申请的最大内存为100MB。<br> (3)设置--memory 50MB --memory-swap为-1:则该容器最大可以申请的内存为50MB+宿主机swap分区大小 <br> (4)设置--memory 50MB --memory-swap 100MB:则该容器可以申请的最大内存为100MB-50MB=50MB  
--memory-swappiness int 用于调整虚拟内存的控制行为,为0~100之间的整数。在linux内存管理中,将内存中不活跃的页交换至硬盘中,以缓解内存紧张,该参数设置为0则认定该容器所有内存中的内容均不允许交换至硬盘,用以保障最大性能,若设置为100,则认为该容器所有内存中的数据均可以交换至硬盘。  
--mount mount 将文件系统挂载到容器  
--name str 为容器指定一个名称  
--network str 将容器连接到网络,支持bridge/host/none/container四种类型  
--network-alias list 设置该容器在网络上的别名  
--no-healthcheck 禁止一切健康检查行为  
--oom-kill-disable 设置是否禁止oom kill行为,若该容器因为需要大量请求内存,导致宿主机内存不足或触发到内存限制,导致杀死该容器进程,若设置该参数为true则会关闭这个检查  
--oom-score-adj int 调整主机的OOM首选项(从-1000到1000)此处需要注意的是,非专业人士docker官方是不建议用户修改--oom-score-adj--oom-kill-disable这两个参数的  
--pid string 设置该容器的pid  
--pids-limit int 限制该容器所能创建的最大进程数。默认-1不限制  
--privileged 在该容器上开启特权模式,让该容器拥有所有的linux能力  
-p, --publish list 将容器的端口映射到宿主机上 docker run -p 8000:8000 ubuntu
--publish-all 将该容器的所有端口均随机映射至宿主机  
--read-only 设置该容器只读  
--restart str 在退出该容器时重启该容器,默认为no  
--rm 当容器退出时自动删除它  
--runtime str 指定该容器关联一个runtime的容器,在使用该参数时注意runtime specified必须在dockerd --add-runtime注册过  
--security-opt list 设置安全属性,在windows上使用CredentialSpec模块来执行身份识别  
--shm-size bytes 设置/dev/shm/目录的大小  
--sig-proxy 代理进程所接收的所有字符,当指定--sig-proxy=false时,ctrl+c和ctrl+d 不会传递信号给docker进程而关闭容器,默认为true  
--stop-signal str 停止带有信号的容器,在linux环境下输入kill -l,就可以看到所有信号名称,可以指定容器发出某种信号时停止该容器,譬如SIGKILL,默认为SIGTERM  
--stop-timeout int 设置容器调用命令超时后自动退出。该参数可以设置容器在调用命令时导致超时后多少秒退出,0(默认)为永远不退出,该参数单位为秒  
--storage-opt list 容器的存储设置,可以分别指定dm.basesize、dm.loopdatasize、dm.loopmetadatasize等项 --storage-opt dm.basesize=20G
--sysctl map 内核参数,对应修改容器中的/etc/sysctl.conf文件  
--tmpfs list 指定挂载一个tmpfs目录,tmpfs是一种虚拟内存文件系统。  
-t, -tty 打开一个伪终端,常与-i同时使用  
--ulimit ulimit 设置容器的ulimit选项  
-u, --user str 用户名或UID  
--userns str ``  
--uts str 使用uts命名空间  
-v, --volume list 在该容器下挂载卷  
--volume-driver str ``  
--volumes-from list ``  
-w, --workdir str 指定容器的工作目录  

4.10 docker create [optoins] image [command] [arg...] // 创建一个新容器
参数 同run

5. 镜像管理

5.1 docker images [options] [repository[:tag]] //列出镜像

选项说明示例
-a <br>--all 列出所有镜像  
--digests 显示摘要信息(sha256)  
-f <br> --filter filter 过滤  
--format str ``  
--no-trunc ``  
-q <br>--quiet 仅显示ID  

5.2 docker rmi [options] image...//删除镜像

选项说明示例
-f <br> --force 强制删除  
--no-prune ``  

5.4 docker tag src_image[:tag] tar_image[:tag] // 创建某个镜像的副本

5.5 docker history [options] image //查看指定镜像的创建历史。

选项说明示例
--format str ``  
-H <br> --human 以可读的形式打印日志和大小  
--no-trunc ``  
-q <br>--quiet ``  

5.6 docker save [options] image... //将指定镜像保存为tar归档文件

选项说明示例
-o <br> --output str 输出至指定的文件  

5.6 docker import [options] file/url/- [repository[:tag]] //由tar文档生成镜像

选项说明示例
-c ,<br> --change list 用dockerfile指令创建镜像  
-m, <br> --message str 为创建的镜像设置描述信息  

5.7 docker build [options] path / url / - //使用dockerfile创建镜像

选项说明示例
--add-host list ``  
--build-arg list 设置镜像创建时的变量  
--cache-from str ``  
--cgroup-parent str ``  
--compress 使用zip压缩构建上下文  
--cpu-period int 限制 CPU CFS周期  
--cpu-quota int 限制 CPU CFS配额  
-c <br> --cpu-shars int 设置 cpu 使用权重  
--cpuset-cpus str 指定使用的CPU id  
--cpuset-mems str 指定使用的内存 id  
--disable-content-trust 忽略校验,默认开启  
-f <br> --file str 指定要使用的Dockerfile路径  
--force-rm 设置镜像过程中删除中间容器  
--iidfile str 指定保存镜像id的文件  
--isolation str 使用容器隔离技术  
--label list 设置镜像使用的元数据  
-m <br> --memory bytes 设置内存最大值  
--memory-swap bytes 设置Swap的最大值为内存+swap,"-1"表示不限swap  
--network str 设置镜像网络模式  
--no-cache 创建镜像的过程不使用缓存  
--pull 尝试去更新镜像的新版本  
-q, <br> --quiet 只输出镜像ID  
--rm 设置镜像成功后删除中间容器  
--security-opt str 安全设置  
--shm-size bytes 设置/dev/shm的大小,默认值是64M  
-t, <br> --tag list ``  
--target str ``  
--ulimit ulimit Ulimit配置  
6. 其他命令

6.1 docker info //显示docker系统信息

6.2 docker version // 显示docker相关的版本信息

posted @ 2019-11-14 20:37  sandea  阅读(4886)  评论(0编辑  收藏  举报