1.docker 常用命令
1. docker search [OPTIONS] NAME # 搜索 Docker Hub 上的镜像。 -q :只显示仓库名。 --filter: 设置过滤条件,比如搜索官方镜像可以使用--filter="is-official=true"。 limit: 设置搜索结果的最大条数。 --no-trunc: 显示完整的镜像描述,而不是截断的描述。 例子: docker search --filter=version=1.17.1 nginx 2. docker pull [OPTIONS] NAME # 从仓库拉取或者更新指定的镜像。 --all-tags`:拉取仓库中所有标签的镜像。 -a, --arch string`:设置镜像的CPU体系结构。 --disable-content-trust`:禁用对镜像签名的验证。 --platform string`:指定镜像的平台,可以是多个值,用逗号分隔。 --quiet, -q`:安静模式,只输出镜像ID。 --help`:显示帮助信息。 --version`:显示版本信息。 例子: docker pull example 3. docker images [OPTIONS] # 列出本地存储的镜像。 -a, --all:显示所有镜像,未标记为最新的历史镜像。 --digests:显示每个镜像的摘要信息,这些信息有助于验证镜像内容的完整性。 -f, --filter:通过设置过滤条件来缩小查询结果,比如可以根据仓库名、标签、镜像ID等来过滤。 --format:指定输出格式,可以是文本或者JSON等,以便于脚本处理或者与其他工具集成。 --no-trunc:不截断输出,默认情况下,如果输出内容太长,docker images命令会截断显示。 -q, --quiet:只显示镜像ID。 REPOSITORY:镜像的仓库源,比如ubuntu、centos等。 TAG:镜像的标签,通常代表镜像的版本或者特性,如latest代表最新版本。 IMAGE ID:镜像的唯一ID,用于识别镜像。 CREATED:镜像的创建时间。 SIZE:镜像的大小,通常以MB或者KB表示。 例子:docker images -a 4. docker rmi [OPTIONS] IMAGE [IMAGE...] # 删除一个或多个镜像。 -a:显示所有容器,包括未停止的容器。 -f, --filter <filter>:通过指定的过滤器来显示特定条件的容器。 -l, --label <label>:显示具有指定标签的容器。 -n, --no-trunc:不截断容器状态。 -q:仅显示容器的ID,不显示其他详细信息。 -s:按容器使用情况(CPU、内存等)进行排序。 -u:按容器的用户ID进行排序。 -p:显示公共镜像ID。 --format <template>:指定输出格式,支持的模板语法有text和json。 例子:docker rmi $(docker images -aqf "dangling=true") # 删除所有未使用的镜像 5. docker run [OPTIONS] IMAGE [COMMAND] [ARG...] # 创建并启动一个新的容器。 -d: 后台运行容器。使用这个选项,容器会在后台运行,并且返回容器ID,让你可以查看到运行中的容器。 -i: 以交互模式运行容器。即使容器在后台运行,也会保持STDIN开启,允许你交互式地进入容器。 -t: 分配一个伪终端。通常与 -i 结合使用,让你可以在容器内有一个终端会话。 --name: 为容器指定一个名称。如果未指定,Docker会随机生成一个名称。 -p: 端口映射。将容器的端口映射到宿主机的端口。例如 -p 8080:80 将容器的80端口映射到宿主机的8080端口。 -v: 挂载卷。将宿主机的目录或文件挂载到容器中。例如 -v /my/local/path:/my/container/path。 --network: 指定容器使用的网络类型。例如 --network=bridge 使用默认桥接网络。 --env: 设置容器环境变量。例如 --env KEY=value。 --rm: 当容器退出时自动删除容器。通常用于短生命周期的容器。 --link: 创建一个链接到另一个容器的网络连接。例如 --link db:db。 --privileged: 以特权模式运行容器,这意味着容器将获得所有主机设备的访问权限。 --volume-driver: 指定容器数据卷的驱动程序。 --ulimit: 设置容器的资源限制,如 --ulimit nproc=4 限制进程数。 --detach-keys: 指定分离容器的键盘序列。 --env-file: 从文件中读取环境变量。 --hostname: 设置容器的主机名。 --dns: 设置容器使用的 DNS 服务器。 --shm-size: 设置容器的共享内存大小。 --add-host: 通过指定 --add-host 参数,可以将自定义的主机名与相应的IP地址关联起来,以便在容器内部使用这些自定义主机名进行网络通信。 --annotation: 允许为容器添加注释,注释是容器的元数据,用于提供额外信息,比如作者、版本、构建日期等。 --restart: 设置容器的重启策略,如 --restart=always 表示容器退出时总是重启。 --cpu-shares: 设置容器CPU权重。 例子:docker run -d -it --name yoyo_centos centos:7 6. docker ps [OPTIONS] # 列出当前运行的容器。 -a:显示所有容器,包括未停止的容器。 -f, --filter <filter>:通过指定的过滤器来显示特定条件的容器。 -l, --label <label>:显示具有指定标签的容器。 -n, --no-trunc:不截断容器状态。 -q:仅显示容器的ID,不显示其他详细信息。 -s:按容器使用情况(CPU、内存等)进行排序。 -u:按容器的用户ID进行排序。 -p:显示公共镜像ID。 --format <template>:指定输出格式,支持的模板语法有text和json。 例子:docker ps -a 7. docker stop [OPTIONS] CONTAINER [CONTAINER...] # 停止一个或多个运行中的容器。 -t, --time int:指定停止容器前的等待时间,单位为秒,默认为10秒。 -容器ID或容器名称:要停止的容器的ID或名称。可以同时指定多个容器。 例子:docker stop abc123def456 8. docker start [OPTIONS] CONTAINER [CONTAINER...] # 启动一个或多个停止的容器。 -a, --attach:在容器启动时附加到容器的标准输入。 -d, --detach:在后台启动容器,不显示容器控制台输出。 -i, --interactive:容器的标准输入保持打开,并在容器启动时附加到它。 -t, --tty:分配一个伪终端(PTY)到容器,即使容器不是交互式的话也启用终端设备。 -n, --name:为正在运行的容器指定一个新名称。 all:启动所有已停止的容器。 例子:docker start <container_id> 9. docker restart [OPTIONS] CONTAINER [CONTAINER...] # 重启一个或多个容器。 -name:指定要重启的容器名称。 -id 或 -id=*: 指定要重启的容器 ID。 -l 或 --label=*: 指定要重启的容器标签。 例子:docker restart mycontainer 10. docker logs [OPTIONS] CONTAINER # 获取容器的日志。 -f 或 --follow:持续输出日志,直到命令被取消或容器停止。 --since:输出指定时间之后的日志。 --until:输出到指定时间之前的日志。 -t 或 --timestamps:在日志中显示时间戳。 --tail:输出最近的指定行数日志。 --details:更详细的日志信息,包括容器名称和退出码。 例子:docker logs my-container 11. docker exec [OPTIONS] CONTAINER [COMMAND] [ARG...] # 在运行的容器中执行命令。 -it 表示交互式执行,即进入容器并打开一个交互式终端。[container_id/container_name] 是要执行命令的 Docker 容器,可以是容器 ID 或容器名称。[command] 是要在容器中执行的命令。 -d:在后台运行命令,并返回容器的 ID。 --privileged:给予容器特殊的权限,允许它访问和修改根文件系统、设备节点和内核对象。 --net=[network_name/network_id]:指定要使用的网络。 --pid=[pid_mode]:指定 PID 隔离模式。 --privileged=true/false:是否给予容器特殊的权限。 --name=[container_name]:为执行命令的容器指定一个名称。 --rm:当容器退出时自动删除容器。 --env=KEY=VALUE:设置环境变量。 --volume=[host_path:]container_path[:options]:挂载主机目录或 Docker 卷到容器内。 例子:docker exec -it 4496a6e86fb2 /bin/bash # 进入运行的docker 12. docker inspect [OPTIONS] NAME|ID # 获取容器的配置信息。 -f, --format: 指定要显示的信息格式。可以使用模板语法来指定要显示的信息。例如,`{{.ID}}`将只显示容器的ID。 -o, --output: 指定要输出的字段。可以使用逗号分隔的字段名称列表来指定要显示的信息。 < container>: 要查看的容器名称或ID。 例子:docker inspect my_container 13. docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH # 从容器中复制文件或目录到本地文件系统。 [OPTIONS]: 这是可选参数,可以根据需要选择使用。 CONTAINER:SRC_PATH: 容器ID或名称以及源路径。SRCPATH 指定在容器内需要复制的文件的路径。例如 96f7f14e99ab:/www/ 表示容器ID为 96f7f14e99ab 中的 /www/ 目录。 DEST_PATH: 目标路径,可以是宿主机的路径或容器内的路径。如果目标路径是宿主机的路径,则表示将容器内的文件复制到宿主机上;如果目标路径是容器内的路径,则表示将宿主机的文件复制到容器内。例如 /www/ 可以是宿主机的路径,或者 96f7f14e99ab:/www/ 表示容器内的路径。 -a, --archive: 归档模式,复制所有UID / GID信息,相当于 cp -a。 -L, --follow-link: 如果源是符号链接,则复制链接指向的文件。 -p, --preserve=mode,links,ownership: 保留文件的权限、链接和所有权。 -q, --quiet: 只显示错误信息。 -d, --directory: 复制目录而非文件,保持目录结构。 例子:docker cp myfile.txt mycontainer:/data/ 14. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 将容器的当前状态作为一个新的镜像保存。 -a, --author string:指定作者信息。 -c, --change list:在提交时应用一系列的Dockerfile指令。 -m, --message string:提交时的信息。 -p, --pause:提交过程中暂停容器(默认为真)。 例子:docker commit my_container my_new_image 15. docker diff [OPTIONS] CONTAINER # 显示容器的更改。 -a: 列出所有变化的层。 -d: 列出并显示 diff。 -f FILE: 从指定文件读取查看改变信息。 -m FILE: 从指定文件读取并显示层的内容差异。 -r: 递归查看子镜像。 例子:docker diff mycontainer 16. docker push:用于将本地镜像推送到 Docker 仓库。参数说明: * `repository/image_name`: 要推送的镜像的仓库和名称。 例子:docker push my-image:latest 17. docker rm:用于删除停止的容器。参数说明: * `container_name`: 指定要删除的容器的名称或 ID。 例子:docker rm $(docker ps -a -q) # 删除多个已停止的容器 18. docker build:用于从 Dockerfile 构建镜像。参数说明: * `-t tag_name`: 指定镜像的名称。 * `-f Dockerfile`: 使用自定义的 Dockerfile 进行构建。 * `context/path/to/dir`: 指定构建上下文路径。 例子:docker build -t myimage . 19. docker volume --name:指定volume的名称,名称最好具有唯一性,方便识别和管理。 -d:后台运行volume。 -rm:当容器退出时自动删除volume。 -p:将volume映射到主机上的一个目录。 -o:设置volume的选项。 --label:设置volume的标签。 - list:列出所有的volume。 - create:创建新的volume。 - inspect:查看volume的详细信息。 - mount:查看volume的挂载信息。 - umount:卸载指定的volume。 - rm:删除指定的volume。 例子:`docker volume ls` 列出所有 Docker 数据卷。 20. docker network - 含义:管理 Docker 的网络设置。 例子:`docker network ls` 列出所有 Docker 网络。 21. docker unpause - 含义:恢复容器中的所有进程。 例子:`docker unpause container_id` 恢复指定的容器。 22. docker pause - 含义:暂停容器中的所有进程。 例子:`docker pause container_id` 暂停指定的容器。 23. docker inspect - 含义:查看容器的配置信息。 例子:`docker inspect container_id` 查看指定容器的详细配置信息。
2.docker container 命令
1. docker container attach # 将本地标准输入、输出和错误流附加到正在运行的容器的终端。 2. docker container commit # 根据容器的更改创建一个新的镜像。 3. docker container cp # 在容器和本地文件系统之间复制文件/文件夹。 4. docker container create # 创建一个新的容器。 5. docker container diff # 检查容器文件系统上自容器创建以来的文件或目录更改。 6. docker container exec # 在正在运行的容器内执行命令。 7. docker container export # 将容器的文件系统导出为tar归档文件。 8. docker container inspect # 显示一个或多个容器的详细信息,包括配置和状态。 9. docker container kill # 杀死一个或多个正在运行的容器。 10. docker container logs # 获取一个容器的日志输出。 11. docker container ls # 列出所有容器。 12. docker container pause # 暂停一个或多个容器中的所有进程。 13. docker container port # 列出端口映射或容器的特定映射。 14. docker container prune # 移走所有已停止的容器。 15. docker container rename # 重命名容器。 16. docker container restart # 重新启动一个或多个容器。 17. docker container rm # 移除一个或多个容器。 18. docker container run # 在新容器中运行命令。 19. docker container start # 启动一个或多个已停止的容器。 20. docker container stats # 显示容器资源使用统计数据的实时流。 21. docker container stop # 停止一个或多个运行中的容器。 22. docker container top # 显示容器正在运行的进程。