Docker 学习之命令详解(转)

1. docker version

$ docker version

显示 Docker 版本信息。

2. docker info

$ docker info

显示 Docker 系统信息,包括镜像数,容器数和登录信息。

3. docker search

$ docker search [OPTIONS] TERM 
$ docker search -s 10 django

从 Docker Hub 中搜索符合条件的镜像。

--automated 只列出 automated build 类型的镜像;
--no-trunc 显示完整的镜像描述;
-s 40 列出收藏数不小于 40 的镜像。

4. docker pull

$ docker pull [OPTIONS] NAME[:TAG|@DIGEST] 
$ docker pull laozhu/telescope:latest

从 Docker Hub 中拉取或者更新指定镜像。

-a 拉取所有的镜像(而不仅是打了标签的);
--disable-content-trust 跳过镜像验证。

5. docker login

$ docker login [OPTIONS] [SERVER] 
$ ritchie@macbook-air:~# docker login Username: username Password: **** Email: user@domain.com Login Succeeded

默认的服务器为『https://index.docker.io/v1/』,也可以指定其他服务器。按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。

-u 用户名
-p 密码
-e 电子邮箱

6. docker logout

$ docker logout [SERVER]

运行后从指定服务器登出,默认为官方服务器。

7. docker images

$ docker images [OPTIONS] [REPOSITORY[:TAG]] 
$ docker images ubuntu:latest

列出本地所有镜像。其中 [REPOSITORY[:TAG]] 对镜像名和标签名。

-a 列出所有镜像(含过程镜像);
-f 过滤镜像,如: -f ['dangling=true'] 只列出满足 dangling=true 条件的镜像;
--digests 显示镜像摘要;
--no-trunc 显示完整的镜像长 ID;
-q 仅列出镜像短 ID;
--tree 以树状结构列出镜像的所有提交历史。

8. docker ps

$ docker ps [OPTIONS]

列出所有运行态容器。

-a 列出所有容器(包含非运行态容器);
--before="nginx" 列出在某一容器之前创建的容器,接受容器名称和ID作为参数;
--since="nginx" 列出在某一容器之后创建的容器,接受容器名称和ID作为参数;
-f [exited=] 列出满足 exited= 条件的容器;
-l 仅列出最新创建的1个容器(包含非运行态容器);
--no-trunc 显示完整的容器长 ID;
-n=4 列出最新创建的4个容器(包含非运行态容器);
-q 仅列出容器短 ID;
-s 显示文件大小。

9. docker rmi

$ docker rmi [OPTIONS] IMAGE [IMAGE...] 
$ docker rmi nginx:latest postgres:latest python:latest 
$ docker rmi 1565e86129b8 Deleted: 1565e86129b8c081d14aec943d54299c3935aaacbf966f3770cd6494f28fd3ea

从本地删除一个或多个指定的镜像。

-f 取消镜像标签,并删除镜像;
--no-prune 保留该镜像的过程镜像。

10. docker rm

$ docker rm [OPTIONS] CONTAINER[CONTAINER...] 
$ docker rm nginx-01 nginx-02 db-01 db-02 
$ docker rm 1565e86129b8 # 本地删除指定的容器。 
$ docker rm /redis /redis # 删除与 redis 有连接的容器。 
 $ docker rm $(docker ps -a -q) # 删除所有非运行态的容器。 
 $ docker rm -f redis # 发送 SIGKILL 信号关闭容器,并删除容器。 
$ docker rm -l /webapp/redis /webapp/redis# 删除了 webapp 和 redis 间的底层连接,并停止所有网络通信。

-f 强行删除运行态容器(使用 SIGKILL);
-l 删除指定的容器间连接;
-v 删除与容器相关联的空间。

11. docker history

$ docker history [OPTIONS] IMAGE 
$ docker history ubuntu:latest

查看指定镜像的构建历史记录。

-H, --human 以人类友好方式显示; 
--no-trunc 显示完整的提交记录长 ID;
-q 仅列出提交记录短 ID。

12. docker events

$ docker events [OPTIONS] 
$ docker events --since 1378216169 
$ docker events --since "2013-09-03" 
$ docker events --since "3m" 
$ docker events --until "2012-03-10" 
$ docker events --filter "event=stop" 
$ docker events --filter "image=ubuntu:latest" $ docker events --filter "container=7805c1d35632" 
$ docker events --filter "container=7805c1d35632" --filter "event=stop" # 容器报告以下事件类型 attach, commit, copy, create, destroy, die, exec_create, exec_start, export, kill, oom, pause, rename, resize, restart, start, stop, top, unpause # 镜像报告以下事件类型 delete, import, pull, push, tag, untag

从服务器拉取实时动态。

当前支持以下形式的事件筛选:
container (container=)
event (event=)
image (image=)
label (label= or label==)
-f, --filter=[] 设置筛选条件,支持多条件联合;
--since 设置查询的开始时间;
--until 设置查询的截止时间。

13. docker start

$ docker start [OPTIONS] CONTAINER[CONTAINER...]

启动一个或多个指定容器。

-a 连接 STDOUT/STDERR 并转发信号;
-i 连接 STDIN ,进入交互模式。

14. docker stop|restart

$ docker stop|restart [OPTIONS] CONTAINER[CONTAINER...]

停止或重启一个或多个容器。

-t 10 停止或者重启容器的等待时间(秒),超时后将发送 SIGKILL 信号停止进程。

15. docker kill

$ docker kill [OPTIONS] CONTAINER[CONTAINER...]

使用 SIGKILL 或指定信号停止一个或多个指定容器的进程。

-s, --signal="KILL" 自定义发送至容器的信号,默认为『KILL』。

16. docker save

$ docker save [OPTIONS] IMAGE [IMAGE...] $ docker save -o ubuntu.tar ubuntu:latest 
$ docker save ubuntu:latest > ubuntu.tar 
$ ls -sh ubuntu.tar 2.7M ubuntu.tar 
$ docker save -o ubuntu.tar ubuntu:lucid ubuntu:saucy # 支持从同一镜像库中精选多个标签

将指定镜像保存为 tar 归档文件,保存后再加载『saved-loaded』的镜像不会丢失提交历史和层,支持回滚。该命令为 docker load 的逆操作。

-o, --output 指定保存的文件,代替『STDOUT』。

17. docker load

$ docker load [OPTIONS] 
$ docker load < ubuntu.tar 
$ docker load -i ubuntu.tar 
$ docker load -i busybox.tar.gz

从 tar 或 tar.gz 镜像归档中解压载入镜像,该命令为 docker save 的逆操作。

-i, --input 指定载入的镜像归档。

18. docker export

$ docker export [OPTIONS] CONTAINER 
$ docker export -o nginx.tar nginx-01 
$ docker export nginx-01 > nginx.tar

将指定的容器保存为 tar 归档文件,导出后导入『exported-imported』的容器会丢失所有的提交历史,不支持回滚。该命令为 docker import 的逆操作。

-o, --output 指定保存的文件,代替『STDOUT』;
docker export 会导出底层目录的内容,不会导出空间『volume』上得内容。

19. docker import

$ docker import file|URL|-[REPOSITORY[:TAG]] 
$ docker import http://example.com/exampleimage.tgz 
$ docker import -c "ENV DEBUG true" nginx.tar nginx-web:latest 
$ cat nginx.tar | docker import -m "New image imported from tarball" - nginx-web:latest

从归档文件(支持『.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz』格式文件,支持远程文件)创建一个镜像,并为导入镜像打上标签,不支持回滚。该命令为 docker export 的逆操作。

-c, --change 导入镜像同时应用 Dockerfile 文件指令;
支持『CMD|ENTRYPOINT|ENV|EXPOSE|ONBUILD|USER|VOLUME|WORKDIR』指令;
-m, --commit 设置导入镜像的提交信息。

20. docker top

$ docker top [OPTIONS] CONTAINER [ps OPTIONS]

查看一个运行态容器的进程,支持 ps 命令参数。

21. docker inspect

$ docker inspect [OPTIONS] CONTAINER|IMAGE[CONTAINER|IMAGE...] docker instpect nginx:latest docker inspect nginx-container

查看镜像或容器的底层信息,默认返回 JSON 格式数据。

-f, --format 指定返回值的模板文件;
--type=container|image 选择类型是镜像还是容器;
-s, --size 如果是容器,显示其总文件大小。

22. docker pause

$ docker pause [OPTIONS] CONTAINER[CONTAINER...]

暂停某一容器的所有进程。

23. docker unpause

$ docker unpause [OPTIONS] CONTAINER[CONTAINER...]

取消暂停某一容器的所有进程。

24. docker tag

$ docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG] 
$ docker tag ubuntu:latest laozhu/ubuntu:latest

标记本地镜像,将其归入某一仓库。

-f 强制操作,覆盖已有标记。

25. docker push

$ docker push name[:tag] 
$ docker push laozhu/nginx:latest

将镜像推送至远程仓库,可以是 Docker Hub 或自建仓库。

--disable-content-trust 跳过镜像签名。

26. docker logs

docker logs [OPTIONS] CONTAINER docker logs -f -t --tail="10" insane_babbage

获取容器的日志。

-f, --follow 跟踪最近的更新;
--since 某个时间以后的日志
-t, --timestamps 显示日志的时间戳;
--tail=N 仅显示最近N条日志。

27. docker run

$ docker run [OPTIONS] IMAGE [COMMAND][ARG...] 
$ docker run -it -a stdin -a stdout ubuntu /bin/bash 
$ docker run -it --add-host pubean.com:192.168.1.42 ubuntu cat /etc/hosts 
$ docker run -ti --cpuset-cpus="1,3"ubuntu:14.04 /bin/bash $ docker run -ti --cpuset-cpus="0-2" ubuntu:14.04 /bin/bash $ docker run --device=/dev/snd:/dev/snd ... docker run -it --name="nginx-lb" nginx /bin/bash docker run -d ubuntu /usr/bin/top

启动一个容器,并在其中运行指定指令。

-a, --attach 挂载标准数据流,可指定标准输入输出和错误,不指定会默认挂载所有数据流;
-d, --detach 后台运行容器,并打印容器ID;
-i, --interactive 以交互模式运行容器,通常与 -t 同时使用;
-t, --tty 为容器分配一个虚拟终端,通常与 -i 同时使用;
-e, --env 设置容器的环境变量;
--env-file 从文件读取容器的环境变量;
--read-only 以只读模式挂载容器的根目录;
--restart 退出容器时重启之;
--rm 退出容器时销毁之;
--name= 给容器起个名字;
--cidfile 将容器id写入文件;
-u, --user 容器用户,格式如 [:]
-h, --hostname 设置容器的主机名『hostname』;
--ulimit 设置容器ulimit值;
-w, --workdir 设置容器的工作目录;
-l, --label 设置容器的元数据;
--label-file 从文件中读取容器的元数据,行分隔文件;
--group-add 为容器增加额外的用户组;
--cpu-shares CPU周期频率相对权重,默认是1024,可根据需要在[2-1024]间浮动;
--cpuset-cpus 指定容器在CPU运行,支持『1-3』或者『1,4』形式;
--cpuset-mems 指定容器在指定MEM运行,支持『1-2』或者『1,3』形式;
-m, --memory 设置容器物理内存大小;
--memory-reservation= 设置内存保留限制;
--memory-swap 总内存『memory+swap』,设为-1禁用swap内存;
--memory-swappiness 设置容器内存可交换比例,可取[1-100]值;
--kernel-memory 设置内核空间,形如 [] 单位是『k,b,m,g』;
-v, --volume 挂载一块空间;
--volume-driver 可选的空间驱动;
--volumes-from 挂载指定某个(些)容器的空间;
--blkio-weight IO相对权重,默认是500,可根据需要在[10-1000]间浮动;
--device 允许在容器内运行的宿主设备
--network 设置容器网络;
--expose 暴露一个或多个端口;
--link 通过网络连接其他容器;
--add-host 在 /etc/hosts 中增加一条『host-to-ip』映射;
--mac-address 设置容器mac地址,形如『92:d0:c6:0a:29:33』;
--dns 8.8.8.8 自定义容器的DNS服务器,默认和宿主一致;
--dns-opt 自定义容器的DNS选项,默认和宿主一致;
--dns-search example.com 自定义容器的DNS搜索域名,默认和宿主一致;
-P, --publish-all 暴露容器的所有开放端口到随机端口;
-p, --publish 暴露容器的一个或多个端口到宿主端口;
--entrypoint 改写镜像默认的『ENTRYPOINT』值;
--disable-content-trust 跳过镜像签名
--cap-add 增加Linux能力,参考Linux能力列表;
--cap-drop 减少Linux能力,参考Linux能力列表;
--cgroup-parent 自定义容器的父亲cgroup;
--log-driver 自定义容器的log系统;
--log-opt 自定义容器的log选项;
--lxc-conf 增加自定义lxc选项;
--ipc 设置IPC命名空间;
--pid 重设容器进程命名空间;
--uts 设置uts命名空间;
--privileged 给予容器更多的特权;
--security-opt 更多容器安全选项;
--stop-signal 停止容器的信号,默认为『SIGTERM』;
--sig-proxy 将收到的信号转给当前进程;
--oom-kill-disable 禁用OOM Killer;

docker run 命令必须指定一个容器的派生镜像,镜像开发者可以通过从以下方面定义镜像:

  1. 前台还是后台运行
  2. 容器id
  3. 网络设置
  4. 容器的CPU和内存限制
  5. 权限和LXC配置

通过 docker run,镜像使用者可以完全控制容器,可以改写镜像开发者设定的所有参数,这也是为什么 docker run 会有如此多得『OPTIONS』。

28. docker attach

$ docker attach [OPTIONS] CONTAINER 
$ docker run -d --name topdemo ubuntu /usr/bin/top -b 
$ docker attach topdemo

将一个运行中容器挂载到标准数据流,既可查看容器输出,又可与容器进行交互。

--no-stdin 不挂载标准输入『STDIN』;
--sig-proxy 将收到的信号转给当前进程;

29. docker build

$ docker build [OPTIONS] PATH | URL | - 
$ docker -t laozhu/nginx:2.0 - < Dockerfile

以 Dockerfile 为模板构建容器。

--force-rm=false 构建失败后移除中间容器;
--no-cache=false 构建过程不适用缓存;
--rm=true 构建成功后移除中间容器;
-t laozhu/nginx:2.0 为创建的容器打上标签。

30. docker create

31. docker commit

32. docker cp

33. docker diff

34. docker exec

35. docker port

36. docker wait

37. docker rename

38. docker stats

39. docker volume

40. docker network

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值