Docker 命令
Docker 命令
attach |
登录到容器直接操作 |
build |
构建镜像 |
commit |
将容器打包成另一个镜像 |
cp |
在容器与本地系统间复制文件 |
create |
创建一个新的容器,不启动 |
diff |
查看容器中新增或修改的目录及文件 |
events |
查看 docker 服务端各种事件信息(包括容器的 启动, 停止, 删除, 更改等) 可以在调试的时候使用 |
exec |
用于在容器中执行命令 |
export |
容器的文件系统导出为一个 tar 包文件 |
import |
将导出的文件系统创建成为一个镜像 |
history |
查看镜像操作的历史纪录 |
images |
查看当前系统中的镜像 |
info |
显示 docker 节点的信息 |
inspect |
查看 docker 镜像或容器的详细信息 |
kill |
停止一个或多个运行中的容器 |
save |
将一个或多个镜像 导出 为一个 tar 包文件 |
load |
从一个 tar 包文件或标准输入 导入一个镜像 |
login |
用于登录到 docker 的镜像仓库 |
logout |
退出已登录的 docker 镜像仓库 |
logs |
用于显示指定容器的日志 |
pause unpause |
暂停一个或多个容器, 取消暂停 |
port |
列出一个容器的端口映射 |
ps |
查看当前运行的容器 |
pull push |
镜像的拉去与推送 |
rename |
对容器重命名 |
restart |
重启一个或多个容器 |
rm |
删除一个或多个容器 |
rmi |
删除一个或多个镜像 |
run |
创建及启动容器 |
search |
通过命令行的方式从官方 hub 中查找镜像 |
stop / start |
停止 或 启动一个或多个容器 |
stats |
实时输出容器的资源使用情况 |
tag |
从一个指定的镜像创建另一个镜像 |
top |
显示指定容器的进程信息 |
update |
更新一个或多个容器的配置 |
version |
版本信息 |
wait |
捕捉容器的退出状态 |
管理命令 service |
创建声明式的,可扩展的,有负载均衡的应用, 是面向用户的应用, 在 swarm 上运行 |
管理命令 config |
用于创建docker 配置文件 |
管理命令 container |
针对容器的基础命令 |
管理命令 image |
针对镜像的基础命令 |
管理命令 node |
管理 swarm 的节点 |
管理命令 plugin |
管理docker的插件(安装卸载启用禁用) |
管理命令 secret |
管理secrets(敏感数据存储) |
docker image XX 命令
Build |
从Dockerfile构建映像 |
History |
显示镜像文件的历史记录 |
History |
显示镜像文件的历史记录 |
import |
从压缩tar镜像文件导入内容以创建文件系统映像 |
inspect |
显示一个或多个镜像文件的详细信息 |
load |
从tar存档或STDIN加载镜像文件 |
ls |
列出镜像文件、修剪删除未使用的镜像文件 |
pull |
从注册镜像站点下载镜像文件 |
push |
将镜像文件上载到注册镜像站点 |
rm |
删除一个或多个镜像文件 |
save |
将一个或多个镜像文件保存到tar存档(默认情况下流式传输到STDOUT) |
tag |
标记创建引用SOURCE_IMAGE的标记TARGET_IMAGE |
# docker image pull microsoft/powershell:nanoserver # docker image pull microsoft/dotnet:latest # docker image load -i /usr/xxx.tar
docker run 中文意思为:通过run命令创建一个新的容器(container)
d |
--detach=false, 指定容器运行于前台还是后台,默认为false |
-i |
--interactive=false, 打开STDIN,用于控制台交互 |
-t |
--tty=false, 分配tty设备,该可以支持终端登录,默认为false |
-u |
--user="", 指定容器的用户 |
-a |
--attach=[], 登录容器(必须是以docker run -d启动的容器) |
-w |
--workdir="", 指定容器的工作目录 |
-c |
--cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用 |
-e |
--env=[], 指定环境变量,容器中可以使用该环境变量 |
-m |
--memory="", 指定容器的内存上限 |
-P |
--publish-all=false, 指定容器暴露的端口 |
-p |
--publish=[], 指定容器暴露的端口 |
-h |
--hostname="", 指定容器的主机名 |
-v
|
--volume=[], 给容器挂载存储卷,挂载到容器的某个目录 |
--volumes-from=[], 给容器挂载其他容器上的卷,挂载到容器的某个目录 |
|
--cap-add=[] |
添加权限,权限清单详见:http |
--cap-drop=[] |
删除权限,权限清单详见:http |
--cidfile="" |
运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法 |
--cpuset="" |
设置容器可以使用哪些CPU,此参数可以用来容器独占CPU |
--device=[] |
添加主机设备给容器,相当于设备直通 |
--dns=[] |
指定容器的dns服务器 |
--dns-search=[] |
指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件 |
--entrypoint="" |
覆盖image的入口点 |
--env-file=[] |
指定环境变量文件,文件格式为每行一个环境变量 |
--expose=[] |
指定容器暴露的端口,即修改镜像的暴露端口 |
--link=[] |
指定容器间的关联,使用其他容器的IP、env等信息 |
--lxc-conf=[] |
指定容器的配置文件,只有在指定--exec-driver=lxc时使用 |
--name="" |
指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字 |
--net="bridge"
|
容器网络设置 |
bridge 使用docker daemon指定的网桥 |
|
host //容器使用主机的网络 |
|
Container NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源 |
|
none 容器使用自己的网络(类似--net=bridge),但是不进行配置 |
|
--privileged=false |
指定容器是否为特权容器,特权容器拥有所有的capabilities |
--restart="no"
|
指定容器停止后的重启策略 |
No 容器退出时不重启 |
|
on-failure 容器故障退出(返回值非零)时重启 |
|
Always 容器退出时总是重启 |
|
--rm=false |
指定容器停止后自动删除容器(不支持以docker run -d启动的容器) |
--sig-proxy=true |
设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 |
# docker run --name my_nginx -d --restart=always -p 8080:80 nginx
docker exec XX命令
-d |
--detach分离模式:在后台运行命令 --detach-keystring覆盖用于分离容器的密钥序列 |
-e
|
--env-list设置环境变量 --env文件列表读入环境变量的文件 |
-i
|
--interactive 交互式保持STDIN打开,即使未连接 --privileged赋予命令扩展权限 |
-t |
--tty分配一个伪tty |
-u |
--用户字符串用户名或UID(格式:“<name|UID>[:<group|gid>]”) |
-w |
--workdir string容器内的工作目录 |
# docker run --name mycontainer -d -i -t alpine /bin/sh # docker exec -d mycontainer touch /tmp/execWorks # docker exec -it mycontainer sh # docker exec -e VAR_A=1 -e VAR_B=2 mycontainer env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=f64a4851eb71 VAR_A=1 VAR_B=2 HOME=/root # docker exec -it mycontainer pwd # docker exec -it -w /root mycontainer pwd
docker build [OPTIONS] PATH | URL | -
--add-host strings |
添加自定义主机到IP的映射 (format "hostip") |
--allow strings |
允许享有额外特权(e.g.,"network.host", "security.insecure") |
--attest stringArray |
证明参数(format:"type=sbom,generator=image") |
--build-arg stringArray |
设置生成时间变量 |
--build-context stringArray |
其他生成上下文(e.g., name=path) |
--builder string |
覆盖已配置的生成器实例(default "default") |
--cpu-shares |
设置 cpu 使用权重 |
--cpu-period |
限制 CPU CFS周期 |
--cpu-quota |
限制 CPU CFS配额 |
--cpuset-cpus |
指定使用的CPU id |
--disable-content-trust |
忽略校验,默认开启 |
--force-rm |
设置镜像过程中删除中间容器 |
--cache-from stringArray |
外部缓存源(e.g., "user/app:cache","type=local,src=path/to/dir") |
--cache-to stringArray |
缓存导出目的地(e.g.,"user/app:cache", "type=local,dest=path/to/dir") |
--cgroup-parent string |
容器的可选父组 |
-f, --file string |
指定要使用的Dockerfile路径 (default:"PATH/Dockerfile") |
--iidfile string |
将图像ID写入文件 |
--label stringArray |
设置图像的元数据 |
--load |
简写为 "--output=type=docker" |
--metadata-file string |
将生成结果元数据写入文件 |
--network string |
在构建期间为“RUN”指令设置网络模式(default "default") |
--no-cache |
生成图像时不使用缓存 |
--no-cache-filter stringArray |
不缓存指定的阶段 |
-o, --output stringArray |
输出目的地(format:"type=local,dest=path") |
--platform stringArray |
为构建设置目标平台 |
--progress string |
设置进度输出的类型("auto", "plain","tty"|“自动”、“普通”、“tty”)。使用普通显示容器输出 (default "auto") |
--provenance string |
简写为 "--attest=type=provenance" |
--pull |
始终尝试提取所有引用的图像 |
--push |
简写"--output=type=registry" |
-q, --quiet |
成功时取消生成输出并打印图像ID |
--sbom string |
简写 "--attest=type=sbom" |
--secret stringArray |
向构建公开的秘密(format:"id=mysecret[,src=/local/secret]") |
--shm-size bytes |
尺寸 "/dev/shm" |
--ssh stringArray |
要向生成公开的SSH代理套接字或密钥 (format:"default|<id>[=<socket>|<key>[,<key>]]") |
-t, --tag stringArray |
名称和可选的标记(format:"name:tag") |
--target string |
设置要构建的目标构建阶段 |
--ulimit ulimit |
限制选项 (default []) |
--isolation |
使用容器隔离技术; |
--label=[] |
设置镜像使用的元数据; |
-m |
设置内存最大值; |
--memory-swap |
设置Swap的最大值为内存+swap,"-1"表示不限swap; |
--no-cache |
创建镜像的过程不使用缓存; |
--pull |
尝试去更新镜像的新版本; |
--quiet, -q |
安静模式,成功后只输出镜像 ID; |
--rm |
设置镜像成功后删除中间容器; |
--shm-size |
设置/dev/shm的大小,默认值是64M; |
--ulimit |
Ulimit配置。 |
--tag, -t |
镜像的名字及标签,通常 name tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。 |
--network |
默认 default。在构建期间设置RUN指令的网络模式 |
# docker build https://github.com/docker/rootfs.git#container:docker # docker build http://server/context.tar.gz # docker build - < Dockerfile # docker build github.com/creack/docker-firefox # docker build -f ctx/Dockerfile http://server/ctx.tar.gz
docker inspect xx命令
-f |
--format string 使用自定义模板格式化输出:json':以json格式打印“TEMPLATE”:使用给定的Go模板打印输出。 提到https://docs.docker.com/go/formatting/了解更多有关使用模板格式化输出的信息 |
-s
|
--size 如果类型为容器,则显示文件的总大小 |
--type string 返回指定类型的JSON |
# docker inspect -f '{{.RootFS.Layers}}' centos:7.9.2009 # docker inspect -f '{{.Config.Env}}' centos:7.8.2003 # docker run -itd mysql:5.7 /bin/sh 开启容器记录下容器ID,下面语句有用 # docker inspect mysql:5.7 |grep layers # docker inspect mysql:5.7 |grep -A 30 layers # docker inspect --type container 728629e73922736601426a1bda0e750b614defa64a5acce1978e4683a0891c64 //-type container 声明查看容器的元数据 # docker inspect -f '{{.State.Pid}}' 728629e73922736601426a1bda0e750b614defa64a5acce1978e4683a0891c64 //“.” 表示“当前上下文”。 # docker inspect -f '{{with .State}} {{.Pid}} {{end}}' 728629e73922736601426a1bda0e750b614defa64a5acce1978e4683a0891c64 # docker inspect -f '{{$.Name}} has pid {{with .State}} {{.Pid}} {{end}}' 728629e73922736601426a1bda0e750b614defa64a5acce1978e4683a0891c64 # docker inspect -f '{{index .HostConfig.ReadonlyPaths 0}}' 728629e73922736601426a1bda0e750b614defa64a5acce1978e4683a0891c64 # docker inspect -f '{{.HostConfig.ReadonlyPaths}}' 728629e73922736601426a1bda0e750b614defa64a5acce1978e4683a0891c64
-f、 --filter filter |
根据提供的条件过滤输出 |
--format string |
使用Go模板进行漂亮的打印搜索 |
--limit int |
最大搜索结果数 |
--no-trunc |
不截断输出 |
# docker search -f stars=10 java # docker search --limit 5 centos # docker search -f is-official=true java 只搜索官方镜像 # docker search --format "{{.Name}}:{{.StarCount}}" centos 显示名称收藏点赞数 # docker search --format "table{{.Name}}\t{{.IsAutomated}}\t{{.IsOfficial}}" centos 只显示镜像名、自动构建和官方镜像