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=[]

指定容器间的关联,使用其他容器的IPenv等信息

--lxc-conf=[]

指定容器的配置文件,只有在指定--exec-driver=lxc时使用

--name=""

指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字

--net="bridge"

    

    

   

    

容器网络设置

bridge 使用docker daemon指定的网桥

host //容器使用主机的网络

Container NAME_or_ID >//使用其他容器的网路,共享IPPORT等网络资源

none 容器使用自己的网络(类似--net=bridge),但是不进行配置

--privileged=false

指定容器是否为特权容器,特权容器拥有所有的capabilities

--restart="no"

    

    

    

指定容器停止后的重启策略

No 容器退出时不重启

on-failure 容器故障退出(返回值非零)时重启

Always 容器退出时总是重启

--rm=false

指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

--sig-proxy=true

设置由代理接受并处理信号,但是SIGCHLDSIGSTOPSIGKILL不能被代理

# 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  
docker search xxx命令

-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 只显示镜像名、自动构建和官方镜像

  

posted @ 2023-06-21 10:24  雨夜清风  Views(38)  Comments(0Edit  收藏  举报