-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update content with latest docker cmd
- Loading branch information
Showing
5 changed files
with
145 additions
and
184 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,168 +1,121 @@ | ||
# Docker命令查询 | ||
|
||
##基本语法 | ||
docker [OPTIONS] COMMAND [arg...] | ||
一般来说,Docker 命令可以用来管理 daemon,或者通过 CLI 命令管理镜像和容器。可以通过 `man docker` 来查看这些命令。 | ||
|
||
|
||
##选项 | ||
-D=true|false | ||
使用 debug 模式。默认为 false。 | ||
|
||
-H, --host=[unix:///var/run/docker.sock]: tcp://[host:port]来绑定或者 unix://[/path/to/socket] 来使用。 | ||
在 daemon 模式下绑定的 socket,通过一个或多个 tcp://host:port, unix:///path/to/socket, fd://* or fd://socketfd 来指定。 | ||
|
||
--api-enable-cors=true|false | ||
在远端 API 中启用 CORS 头。缺省为 false。 | ||
|
||
-b="" | ||
将容器挂载到一个已存在的网桥上。指定为 'none' 时则禁用容器的网络。 | ||
|
||
--bip="" | ||
让动态创建的 docker0 采用给定的 CIDR 地址; 与 -b 选项互斥。 | ||
|
||
-d=true|false | ||
使用 daemon 模式。缺省为 false。 | ||
|
||
--dns="" | ||
让 Docker 使用给定的 DNS 服务器。 | ||
|
||
-g="" | ||
指定 Docker 运行时的 root 路径。缺省为 /var/lib/docker。 | ||
|
||
--icc=true|false | ||
启用容器间通信。默认为 true。 | ||
|
||
--ip="" | ||
绑定端口时候的默认 IP 地址。缺省为 0.0.0.0。 | ||
|
||
--iptables=true|false | ||
禁止 Docker 添加 iptables 规则。缺省为 true。 | ||
|
||
--mtu=VALUE | ||
指定容器网络的 mtu。缺省为 1500。 | ||
|
||
-p="" | ||
指定 daemon 的 PID 文件路径。缺省为 /var/run/docker.pid。 | ||
|
||
-s="" | ||
强制 Docker 运行时使用给定的存储驱动。 | ||
|
||
-v=true|false | ||
输出版本信息并退出。缺省值为 false。 | ||
|
||
--selinux-enabled=true|false | ||
启用 SELinux 支持。缺省值为 false。SELinux 目前不支持 BTRFS 存储驱动。 | ||
|
||
|
||
##命令 | ||
Docker 的命令可以采用 `docker-CMD` 或者 `docker CMD` 的方式执行。两者一致。 | ||
|
||
docker-attach(1) | ||
依附到一个正在运行的容器中。 | ||
|
||
docker-build(1) | ||
从一个 Dockerfile 创建一个镜像 | ||
|
||
docker-commit(1) | ||
从一个容器的修改中创建一个新的镜像 | ||
|
||
docker-cp(1) | ||
从容器中复制文件到宿主系统中 | ||
|
||
docker-diff(1) | ||
检查一个容器文件系统的修改 | ||
|
||
docker-events(1) | ||
从服务端获取实时的事件 | ||
|
||
docker-export(1) | ||
导出容器内容为一个 tar 包 | ||
|
||
docker-history(1) | ||
显示一个镜像的历史 | ||
|
||
docker-images(1) | ||
列出存在的镜像 | ||
|
||
docker-import(1) | ||
导入一个文件(典型为 tar 包)路径或目录来创建一个镜像 | ||
|
||
docker-info(1) | ||
显示一些相关的系统信息 | ||
|
||
docker-inspect(1) | ||
显示一个容器的底层具体信息。 | ||
|
||
docker-kill(1) | ||
关闭一个运行中的容器 (包括进程和所有资源) | ||
|
||
docker-load(1) | ||
从一个 tar 包中加载一个镜像 | ||
|
||
docker-login(1) | ||
注册或登录到一个 Docker 的仓库服务器 | ||
|
||
docker-logout(1) | ||
从 Docker 的仓库服务器登出 | ||
|
||
docker-logs(1) | ||
获取容器的 log 信息 | ||
|
||
docker-pause(1) | ||
暂停一个容器中的所有进程 | ||
|
||
docker-port(1) | ||
查找一个 nat 到一个私有网口的公共口 | ||
|
||
docker-ps(1) | ||
列出容器 | ||
|
||
docker-pull(1) | ||
从一个Docker的仓库服务器下拉一个镜像或仓库 | ||
|
||
docker-push(1) | ||
将一个镜像或者仓库推送到一个 Docker 的注册服务器 | ||
|
||
docker-restart(1) | ||
重启一个运行中的容器 | ||
|
||
docker-rm(1) | ||
删除给定的若干个容器 | ||
|
||
docker-rmi(1) | ||
删除给定的若干个镜像 | ||
|
||
docker-run(1) | ||
创建一个新容器,并在其中运行给定命令 | ||
|
||
docker-save(1) | ||
保存一个镜像为 tar 包文件 | ||
|
||
docker-search(1) | ||
在 Docker index 中搜索一个镜像 | ||
|
||
docker-start(1) | ||
启动一个容器 | ||
|
||
docker-stop(1) | ||
终止一个运行中的容器 | ||
|
||
docker-tag(1) | ||
为一个镜像打标签 | ||
|
||
docker-top(1) | ||
查看一个容器中的正在运行的进程信息 | ||
|
||
docker-unpause(1) | ||
将一个容器内所有的进程从暂停状态中恢复 | ||
|
||
docker-version(1) | ||
输出 Docker 的版本信息 | ||
|
||
docker-wait(1) | ||
阻塞直到一个容器终止,然后输出它的退出符 | ||
|
||
##一张图总结 Docker 的命令 | ||
|
||
以 Docker 1.11+ 版本为例。 | ||
|
||
## 基本语法 | ||
Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker daemon。 | ||
|
||
* 客户端命令:基本命令格式为 `docker [OPTIONS] COMMAND [arg...]`; | ||
* 服务端命令:基本命令格式为 `docker daemon [OPTIONS]`。 | ||
|
||
可以通过 `man docker` 来查看这些命令。 | ||
|
||
## 客户端命令选项 | ||
|
||
* --config="":指定客户端配置文件,默认为 `/.docker`; | ||
* -D=true|false:是否使用 debug 模式。默认不开启; | ||
* -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; | ||
* -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; | ||
* --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否; | ||
* --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径; | ||
* --tlscert= /.docker/cert.pem:TLS 可信证书文件路径; | ||
* --tlscert= /.docker/key.pem:TLS 密钥文件路径; | ||
* --tlsverify=true|false:启用 TLS 校验,默认为否。 | ||
|
||
## daemon 命令选项 | ||
* --api-cors-header="":CORS 头部域,默认不允许 CORS,要允许任意的跨域访问,可以指定为 “*”; | ||
* --authorization-plugin="":载入认证的插件; | ||
* -b="":将容器挂载到一个已存在的网桥上。指定为 'none' 时则禁用容器的网络,与 --bip 选项互斥; | ||
* --bip="":让动态创建的 docker0 网桥采用给定的 CIDR 地址; 与 -b 选项互斥; | ||
* --cgroup-parent="":指定 cgroup 的父组,默认 fs cgroup 驱动为 `/docker`,systemd cgroup 驱动为 `system.slice`; | ||
* --cluster-store="":构成集群(如 Swarm)时,集群键值数据库服务地址; | ||
* --cluster-advertise="":构成集群时,自身的被访问地址,可以为 `host:port` 或 `interface:port`; | ||
* --cluster-store-opt="":构成集群时,键值数据库的配置选项; | ||
* --config-file="/etc/docker/daemon.json":daemon 配置文件路径; | ||
* --containerd="":containerd 文件的路径; | ||
* -D, --debug=true|false:是否使用 Debug 模式。缺省为 false; | ||
* --default-gateway="":容器的 IPv4 网关地址,必须在网桥的子网段内; | ||
* --default-gateway-v6="":容器的 IPv6 网关地址; | ||
* --default-ulimit=[]:默认的 ulimit 值; | ||
* --disable-legacy-registry=true|false:是否允许访问旧版本的镜像仓库服务器; | ||
* --dns="":指定容器使用的 DNS 服务器地址; | ||
* --dns-opt="":DNS 选项; | ||
* --dns-search=[]:DNS 搜索域; | ||
* --exec-opt=[]:运行时的执行选项; | ||
* --exec-root="":容器执行状态文件的根路径,默认为 `/var/run/docker`; | ||
* --fixed-cidr="":限定分配 IPv4 地址范围; | ||
* --fixed-cidr-v6="":限定分配 IPv6 地址范围; | ||
* -G, --group="":分配给 unix 套接字的组,默认为 `docker`; | ||
* -g, --graph="":Docker 运行时的根路径,默认为 `/var/lib/docker`; | ||
* -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; | ||
* --icc=true|false:是否启用容器间以及跟 daemon 所在主机的通信。默认为 true。 | ||
* --insecure-registry=[]:允许访问给定的非安全仓库服务; | ||
* --ip="":绑定容器端口时候的默认 IP 地址。缺省为 0.0.0.0; | ||
* --ip-forward=true|false:是否检查启动在 Docker 主机上的启用 IP 转发服务,默认开启。注意关闭该选项将不对系统转发能力进行任何检查修改; | ||
* --ip-masq=true|false:是否进行地址伪装,用于容器访问外部网络,默认开启; | ||
* --iptables=true|false:是否允许 Docker 添加 iptables 规则。缺省为 true; | ||
* --ipv6=true|false:是否启用 IPv6 支持,默认关闭; | ||
* -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; | ||
* --label="[]":添加指定的键值对标注; | ||
* --log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none":指定日志后端驱动,默认为 json-file; | ||
* --log-opt=[]:日志后端的选项; | ||
* --mtu=VALUE:指定容器网络的 mtu; | ||
* -p="":指定 daemon 的 PID 文件路径。缺省为 `/var/run/docker.pid`; | ||
* --raw-logs:输出原始,未加色彩的日志信息; | ||
* --registry-mirror=<scheme>://<host>:指定 `docker pull` 时使用的注册服务器镜像地址; | ||
* -s, --storage-driver="":指定使用给定的存储后端; | ||
* --selinux-enabled=true|false:是否启用 SELinux 支持。缺省值为 false。SELinux 目前尚不支持 overlay 存储驱动; | ||
* --storage-opt=[]:驱动后端选项; | ||
* --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否; | ||
* --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径; | ||
* --tlscert= /.docker/cert.pem:TLS 可信证书文件路径; | ||
* --tlscert= /.docker/key.pem:TLS 密钥文件路径; | ||
* --tlsverify=true|false:启用 TLS 校验,默认为否; | ||
* --userland-proxy=true|false:是否使用用户态代理来实现容器间和出容器的回环通信,默认为 true; | ||
* --userns-remap=default|uid:gid|user:group|user|uid:指定容器的用户命名空间,默认是创建新的 UID 和 GID 映射到容器内进程。 | ||
|
||
## 子命令 | ||
|
||
可以通过 `man docker-COMMAND` 来查看这些命令的具体用法。 | ||
|
||
* attach:依附到一个正在运行的容器中; | ||
* build:从一个 Dockerfile 创建一个镜像; | ||
* commit:从一个容器的修改中创建一个新的镜像; | ||
* cp:在容器和本地宿主系统之间复制文件中; | ||
* create:创建一个新容器,但并不运行它; | ||
* diff:检查一个容器文件系统的修改; | ||
* events:从服务端获取实时的事件; | ||
* exec:在运行的容器内执行命令; | ||
* export:导出容器内容为一个 tar 包; | ||
* history:显示一个镜像的历史信息; | ||
* images:列出存在的镜像; | ||
* import:导入一个文件(典型为 tar 包)路径或目录来创建一个本地镜像; | ||
* info:显示一些相关的系统信息; | ||
* inspect:显示一个容器的底层具体信息; | ||
* kill:关闭一个运行中的容器 (包括进程和所有相关资源); | ||
* load:从一个 tar 包中加载一个镜像; | ||
* login:注册或登录到一个 Docker 的仓库服务器; | ||
* logout:从 Docker 的仓库服务器登出; | ||
* logs:获取容器的 log 信息; | ||
* pause:暂停一个容器中的所有进程; | ||
* port:查找一个 nat 到一个私有网口的公共口; | ||
* ps:列出容器; | ||
* pull:从一个Docker的仓库服务器下拉一个镜像或仓库; | ||
* push:将一个镜像或者仓库推送到一个 Docker 的注册服务器; | ||
* rename:重命名一个容器; | ||
* restart:重启一个运行中的容器; | ||
* rm:删除给定的若干个容器; | ||
* rmi:删除给定的若干个镜像; | ||
* run:创建一个新容器,并在其中运行给定命令; | ||
* save:保存一个镜像为 tar 包文件; | ||
* search:在 Docker index 中搜索一个镜像; | ||
* start:启动一个容器; | ||
* stats:输出(一个或多个)容器的资源使用统计信息; | ||
* stop:终止一个运行中的容器; | ||
* tag:为一个镜像打标签; | ||
* top:查看一个容器中的正在运行的进程信息; | ||
* unpause:将一个容器内所有的进程从暂停状态中恢复; | ||
* version:输出 Docker 的版本信息; | ||
* wait:阻塞直到一个容器终止,然后输出它的退出符。 | ||
|
||
## 一张图总结 Docker 的命令 | ||
![命令周期](../_images/cmd_logic.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
# 安全 | ||
评估 Docker 的安全性时,主要考虑三个方面: | ||
|
||
* 由内核的名字空间和控制组机制提供的容器内在安全 | ||
* Docker程序(特别是服务端)本身的抗攻击性 | ||
* Docker 程序(特别是服务端)本身的抗攻击性 | ||
* 内核安全性的加强机制对容器安全性的影响 |