文章目录
计算机系统 5G云计算 LINUX Docker及docker-conpose相关命令 一、Docker 常用命令 1、镜像管理 1.拉取镜像 2.列出本地镜像 3.删除镜像 4.构建镜像(从 Dockerfile) 5.推送镜像到仓库 6.从 .tar 文件加载镜像 7.将镜像保存为 .tar 文件 8.搜索镜像 9.查看镜像构建历史 10.为镜像打标签或修改标签
2、容器管理 1.启动容器 2.列出运行中的容器 3.启动/停止/重启容器 4.在正在运行的容器中执行命令或与之交互 5.查看容器日志 6.删除容器 7.复制文件到容器 8.查看容器详细信息
3、网络管理 1.查看网络列表 2.创建自定义网络 3.显示一个或多个网络的详细信息 4.将容器连接到网络 5.将容器从网络断开连接 6.删除所有未使用的网络 7.删除一个或多个网络
4、数据卷管理 1.列出数据卷 2.删除未使用的数据卷 3.创建一个新的卷 4.显示一个或多个卷的详细信息 5.删除一个或多个卷
5、系统与维护 1.清理未使用的镜像、容器、网络 2.显示 Docker 磁盘使用情况 3.显示 Docker 守护进程的实时事件 4.显示 Docker 系统信息 5.实时查看容器资源占用 6.查看 Docker 系统信息 7.查看 Docker 版本
二、Docker Compose 常用命令 1、基本操作 1.启动所有服务 2.停止服务并删除容器 3.启动已存在的服务 4.停止运行中的服务 5.重启服务
2、服务管理 1.查看所有服务的状态 2.查看所有服务的日志 3.构建或重新构建服务的镜像 4.在指定服务的容器中执行命令 5.拉取服务依赖的镜像
3、镜像与容器 1.列出所有服务使用的镜像 2.删除已停止的服务容器 3.查看服务容器的进程
4、配置文件与环境 1.验证和查看 `docker-compose.yml` 文件的配置 2.启动服务并执行一次性命令
5、扩展功能 1.扩展指定服务的容器数量(需删除旧容器) 2.暂停服务容器 3.恢复暂停的服务容器 4.查看服务容器的端口映射
注意事项 5、扩展功能 1.扩展指定服务的容器数量(需删除旧容器) 2.暂停服务容器 3.恢复暂停的服务容器 4.查看服务容器的端口映射
注意事项
计算机系统
5G云计算
LINUX Docker及docker-conpose相关命令
一、Docker 常用命令
1、镜像管理
1.拉取镜像
docker pull <选项> <镜像名>:<标签>|<特定镜像版本的唯一标识符>
选项 用途 -a,–all-tags 下载仓库中指定镜像名所有标签的镜像 –disable-content-trust 跳过镜像验证。默认Docker使用内容信任机制验证镜像的完整性 –platform string 如果注册表支持多平台镜像,可以指定平台(linux/amd64、windows/amd64) -q,–quit 抑制详细输出。拉取完成后仅显示镜像ID。
2.列出本地镜像
docker images <选项> [仓库[:标签]]
选项 用途 -a,–all 列出所有镜像(包括中间层镜像) –digests 显示镜像的摘要信息 -f,–filter 根据条件过滤镜像列表 常用过滤器: dangling=true:列出悬空镜像(未被任何容器使用镜像) label=<key>或label=<key>=<value>:根据标签过滤镜像 before=<image>:列出在指定镜像之前创建的镜像 since=<image>:列出在指定镜像之后创建的镜像 –format 使用Go模板格式化输出 常用模板: {{.Repository}}:镜像仓库名称。 {{.Tag}}:镜像标签。 {{.ID}}:镜像ID。 {{.Size}}:镜像大小。 –no-trunc 显示完整的镜像ID,不截断 -q,–quite 只显示镜像ID –help 显示帮助信息
3.删除镜像
docker rmi <镜像ID或名称1> <镜像ID或名称2> <镜像ID或名称3>
#可同时删除多个镜像
选项 用途 -f,–force 强制删除镜像,即使有容器正在使用它(可能导致正在运行容器出现问题) –no-prune 保留未被标记的父镜像(即中间层镜像) -a,–all 删除所有未使用的镜像(悬空镜像) –help 显示帮助信息
4.构建镜像(从 Dockerfile)
docker build <选项> <Dockerfile路径> | URL | -
#构建镜像默认当前所在目录
选项 用途 -f,–file 指定Dockerfile的路径构建镜像 -t,–tag 为构建的镜像指定名称和标签 –build-arg 设置构建时的变量(在 Dockerfile 中使用 ARG 定义) –no-cache 禁用缓存,从头开始构建镜像 –pull 总是尝试拉取基础镜像的最新版本 –target 指定多阶段构建中的某个阶段作为最终镜像 –platform 指定构建的目标平台(linux/amd64、linux/arm64) –label 为镜像添加元数据标签 –rm 构建成功后删除中间容器(默认启用) -q,–quite 静默模式,只输出镜像ID -o,–output 将构建结果导出到指定目录 –progress 设置构建进度输出格式(auto、plain、tty) –secret 传递敏感数据到构建过程中 –ssh 允许在构建过程中使用SSH密钥 –network 设置构建过程中的容器的网络模式(host、bridge) –add-host 在构建过程中添加自定义主机到IP的映射 –shm-size 设置构建过程中容器的共享内存大小 –ulimit 设置构建过程中容器的资源限制 –help 显示帮助信息
5.推送镜像到仓库
docker push <选项> <镜像名>:<标签>
选项 用途 –disable-content-trust 跳过镜像的内容信任验证(默认启用) -q,–quite 静默模式,只输出镜像的摘要信息 –help 显示帮助信息
6.从 .tar 文件加载镜像
docker load -i FILE.tar
#只能加载由 docker save 导出的 tar 文件
#与 docker import 的区别
docker load: 用于加载由 docker save 导出的镜像(包含完整的镜像历史和元数据)
docker import: 用于从文件系统快照创建镜像(不包含历史记录和元数据)
选项 用途 -i,–input 指定要加载的tar文件路径。可用<
标准输入读取或cat+管道符输入 -q,–quite 静默模式,不显示加载过程中的输出信息 –help 显示帮助信息
7.将镜像保存为 .tar 文件
docker save -o FILE.tar IMAGE
#可保存多个镜像到同一个tar文件内
#与 docker export 的区别
docker save: 保存的是镜像(包含完整的镜像历史和元数据)。
docker export: 保存的是容器的文件系统快照(不包含历史记录和元数据)。
选项 用途 -o,–output 指定保存的tar文件路径及文件名 –help 显示帮助信息
8.搜索镜像
docker search TERM
选项 用途 -f,–filter 根据条件过滤搜索结果 常用过滤器: is-official:是否官方镜像 is-automated:是否自动构建 stars:镜像的星标数 –format 使用Go模板格式化输出 –limit 限制搜索结果的数量 –no-trunc 不截断输出,显示完整的镜像描述 –help 显示帮助信息
9.查看镜像构建历史
docker history IMAGE
选项 用途 –no-trunc 不截断输出,显示完整的镜像描述 -q,–quite 静默模式,只输出镜像层ID –format 使用Go模板格式化输出 -H,–human 以人类可读的格式显示镜像层大小(默认已启用) –help 显示帮助信息
10.为镜像打标签或修改标签
docker tag SOURCE_IMAGE TARGET_IMAGE
#与 docker commit 的区别
docker tag: 为现有镜像添加新标签,不创建新镜像
docker commit: 从容器的更改创建新镜像
2、容器管理
1.启动容器
docker run [选项] <镜像名> [command] [arg]
#command:容器启动后执行的命令覆盖Dockerfile中的CMD
#arg:传递给命令的参数
选项 用途 -d,–detach 以分离模式(后台)运行容器 –rm 容器推出后自动删除容器 -it 以交互模式运行容器 –name 指定容器名称 –network 指定容器的网络模式(bridge、host、none) -p,–publish 将容器端口映射到主机端口(主机端口:容器端口) –dns 指定容器的DNS服务器 -m,–memory 限制容器的内存使用量 –cpus 限制容器使用的CPU数量 –cpu-shares 设置CPU权重(默认1024) –ulimit 设置容器的资源限制(如文件描述符数量) -v,–volume 挂在主机目录或卷到容器中 –mount 更灵活的挂载方式(支持卷、绑定挂载等) –tmpfs 挂在临时文件系统到容器中 -e,–env 设置容器的环境变量 –env-file 从文件加载环境变量 –user 指定容器运行的用户 –cap-add 添加Linux能力(如SYS_ADMIN) –cap-drop 移除Linux能力 –security-opt 设置安全选项(如seccomp配置文件) –log-driver 指定日志驱动(如json-file、syslog) –log-opt 设置日志驱动的选项(max-size,max-file) –restart 设置容器的重启策略(no、on-failure、always) –entrypoint 覆盖镜像的默认入口点 –add-host 添加自定义主机到IP的映射 –help 显示帮助信息
2.列出运行中的容器
docker ps
选项 用途 -a,–all 显示所有容器,包括正在运行的和已停止的 -f,–filter 根据条件过滤容器。可使用多个过滤器 –format 使用Go模板格式化输出,同上images -n,–last 显示最后创建的n个容器(包括所有状态) -l,–latest 显示最新创建的容器(包括所有状态) -q,–quite 仅显示容器ID -s,–size 显示容器的大小(文件系统大小) –no-trunc 不截断输出,显示完整的容器ID和命令 –help 显示帮助信息
3.启动/停止/重启容器
docker start <容器ID或名称>
docker stop <容器ID或名称>
docker restart <容器ID或名称>
start选项 用途 -a,–attach 附加到容器的标准输入、输出和错误流 -i,–interactive 附加到容器的标准输入(通常与-a一起用) –detach-keys 设置从容器分离的快捷键(默认是Ctrl-p Ctrl-q) –help 显示帮助信息
stop选项 用途 -t,–time 设置停止容器的超时时间(默认10s),会先发送SIGTERM 信号,超时后再发送 SIGKILL 信号 –help 显示帮助信息
restart选项 用途 -t,–time 设置停止容器的超时时间(默认10s),与docker stop相同 –help 显示帮助信息
4.在正在运行的容器中执行命令或与之交互
docker exec <选项> <容器ID或名称>
docker exec -it <选项> <容器ID或名称> /bin/bash //进入容器终端
选项 用途 -d,–detach 在后台运行命令(分离模式) -e,–env 设置环境变量 -i,–interactive 保持标准输入(stdin)打开,即使没有附加 -t,–tty 分配一个伪终端 -u,–user 指定执行命令的用户名或UID -w,–workdir 指定命令的工作目录 –help 显示帮助信息
5.查看容器日志
docker logs <容器ID或名称>
选项 用途 -f,–follow 实时跟踪日志输出 –tail 显示日志的最后n行(默认显示所有日志) -t,–timestamps 显示日志的时间戳 –since 先是从指定时间开始的日志(支持相对时间或绝对时间) –until 显示到指定时间结束的日志(支持相对时间或绝对时间) -n,–max-count 显示指定数量的日志行 –details 显示日志的额外详细信息(如日志来源) –help 显示帮助信息
6.删除容器
docker rm <容器ID或名称>
选项 用途 -f,–force 强制删除正在运行的容器(使用SIGKILL信号) -v,–volumes 删除与容器关联的匿名卷 -l,–link 删除指定的链接(已弃用,不推荐使用) –help 显示帮助信息
7.复制文件到容器
docker cp <本地路径> <容器名>:<容器路径>
选项 用途 -a,–archive 以归档模式复制文件,保留文件的所有元信息(权限、所有权等) -L,–follow 始终跟随符号链接(复制链接指向的实际文件或目录) –help 显示帮助信息
8.查看容器详细信息
docker inspect <容器名>
选项 用途 -f,–format 使用 Go 模板格式化输出 {{.Architecture}}:查看容器架构 -s,–size 显示容器文件系统的总大小(仅适用于容器) –type 指定要检查的对象类型(container、image、network、volume等) –help 显示帮助信息
3、网络管理
1.查看网络列表
docker network ls [OPTIONS]
选项 用途 -f,–filter 根据条件过滤网络 -q,–quite 仅显示网络 ID
2.创建自定义网络
docker network create [OPTIONS] NETWORK_NAME
选项 用途 -d,–driver 指定网络驱动(bridge、overlay、host)默认bridge –subnet 指定子网(CIDR格式) –gateway 指定网关地址 –ip-range 指定IP地址范围 –label 为网络添加元数据标签
3.显示一个或多个网络的详细信息
docker network inspect [OPTIONS] NETWORK [NETWORK...]
选项 用途 -f,–format 使用 Go 模板格式化输出
4.将容器连接到网络
docker network connect [OPTIONS] NETWORK CONTAINER
选项 用途 –ip 指定容器的 IP 地址 –alias 为容器添加网络别名
5.将容器从网络断开连接
docker network disconnect [OPTIONS] NETWORK CONTAINER
6.删除所有未使用的网络
docker network prune [OPTIONS]
选项 用途 -f,–force 强制断开连接 –filter 根据条件过滤网络
7.删除一个或多个网络
docker network rm NETWORK [NETWORK...]
4、数据卷管理
1.列出数据卷
docker volume ls [OPTIONS]
选项 用途 -f,–filter 根据条件过滤卷 -q,–quite 仅显示卷名
2.删除未使用的数据卷
docker volume prune [OPTIONS]
选项 用途 -f,–force 强制删除,无需确认 –filter 根据条件过滤卷
3.创建一个新的卷
docker volume create [OPTIONS] VOLUME_NAME
选项 用途 -d,-driver 指定卷驱动(默认local) –label 为卷添加元数据标签 –opt 指定驱动特定的选项(device、o)
4.显示一个或多个卷的详细信息
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
选项 用途 -f,–format 使用 Go 模板格式化输出
5.删除一个或多个卷
docker volume rm VOLUME [VOLUME...]
5、系统与维护
1.清理未使用的镜像、容器、网络
docker system prune [OPTIONS]
选项 用途 -a,–all 删除所有未使用的资源(包括未使用的镜像和构建缓存) –volumes 删除未使用的卷 -f,–force 强制删除,无需确认 –filter 根据条件过滤资源
2.显示 Docker 磁盘使用情况
docker system df [OPTIONS]
#输出字段:
TYPE: 资源类型(如镜像、容器、卷、构建缓存等)。
TOTAL: 资源总数。
ACTIVE: 正在使用的资源数量。
SIZE: 资源占用的磁盘空间。
RECLAIMABLE: 可回收的磁盘空间。
3.显示 Docker 守护进程的实时事件
docker system events [OPTIONS]
选项 用途 -f,–filter 根据条件过滤事件 –since 显示从指定时间开始的事件 —until 显示到指定时间为止的事件
4.显示 Docker 系统信息
docker system info [OPTIONS]
#输出内容:
Docker 版本信息
容器和镜像的数量
存储驱动和文件系统信息。
网络和日志配置。
系统资源(如 CPU、内存)信息。
5.实时查看容器资源占用
docker stats [OPTIONS] [CONTAINER...]
#输出字段
字段名称 说明
CONTAINER ID 容器的 ID。
NAME 容器的名称。
CPU % 容器使用的 CPU 百分比。
MEM USAGE / LIMIT 容器使用的内存量及内存限制。
MEM % 容器使用的内存百分比。
NET I/O 容器的网络输入/输出量。
BLOCK I/O 容器的块设备输入/输出量。
PIDS 容器中的进程数。
选项 用途 -a,–all 显示所有容器(包括未运行的容器)的统计信息 –format 使用 Go 模板格式化输出 –no-stream 仅显示一次统计信息,而不是实时更新 –no-trunc 显示完整的输出(不截断) –help 显示帮助信息
6.查看 Docker 系统信息
docker info [OPTIONS]
#与docker system info功能完全一致
7.查看 Docker 版本
docker version [OPTIONS]
#输出内容
docker version 的输出包含以下两部分:
#客户端信息(Client):
Version: Docker 客户端版本。
API version: 客户端使用的 Docker API 版本。
Go version: 编译 Docker 客户端使用的 Go 语言版本。
Git commit: Docker 客户端的 Git 提交哈希。
Built: Docker 客户端的构建时间。
OS/Arch: 客户端运行的操作系统和架构。
Context: Docker 上下文(如 default)。
#服务器信息(Server):
Version: Docker 服务器(守护进程)版本。
API version: 服务器使用的 Docker API 版本。
Go version: 编译 Docker 服务器使用的 Go 语言版本。
Git commit: Docker 服务器的 Git 提交哈希。
Built: Docker 服务器的构建时间。
OS/Arch: 服务器运行的操作系统和架构。
Experimental: 是否启用了实验性功能。
Kernel Version: 服务器的内核版本。
OSType: 服务器的操作系统类型(如 linux)。
Architecture: 服务器的架构(如 x86_64)。
Docker Root Dir: Docker 的根目录路径。
Index Server Address: Docker Registry 的地址(如 https://index.docker.io/v1/)。
选项 用途 -f,–format 使用 Go 模板格式化输出 –help 显示帮助信息
二、Docker Compose 常用命令
1、基本操作
1.启动所有服务
docker-compose up [OPTIONS] [SERVICE...]
选项 用途 -d,–detach 在后台运行容器( detached 模式) –env-file 指定环境变量文件 –build 启动前重新构建镜像 –no-build 不构建镜像,即使镜像缺失 –force-recreate 强制重新创建容器,即使配置未更改 –no-recreate 如果容器已存在,则不重新创建 –no-deps 不启动依赖的服务 –scale 指定服务的实例数量(如 web=3) –abort-on-container-exit 如果有容器退出,则停止所有容器 –remove-orphans 删除未在 docker-compose.yml中定义的容器 –exit-code-from 返回指定服务的退出代码 -t,–timeout 设置容器停止的超时时间(默认为 10 秒) –quite-pull 拉取镜像时不显示进度信息 –renew-anon-volumes 重新创建匿名卷,而不是复用 –no-log-prefix 不显示日志前缀(容器名称) –no-color 禁用彩色输出 –help 显示帮助信息并退出
2.停止服务并删除容器
docker-compose down [OPTIONS]
选项 用途 –rmi 删除镜像 可选值: all:删除所有镜像。 local:仅删除未标记的镜像 -v,–volumes 删除与容器关联的命名卷和匿名卷 –remove-orphans 删除未在 docker-compose.yml 中定义的容器 -t,–timeout 设置停止容器的超时时间(默认为 10 秒) –help 显示帮助信息
3.启动已存在的服务
docker-compose start [OPTIONS] [SERVICE...]
SERVICE: 指定要启动的服务名称(在 docker-compose.yml 中定义)。如果未指定,则启动所有已停止的服务。
4.停止运行中的服务
docker-compose stop [OPTIONS] [SERVICE...]
SERVICE: 指定要停止的服务名称(在 docker-compose.yml 中定义)。如果未指定,则停止所有正在运行的服务。
5.重启服务
docker-compose restart [OPTIONS] [SERVICE...]
SERVICE: 指定要重启的服务名称(在 docker-compose.yml 中定义)。如果未指定,则重启所有正在运行的服务。
2、服务管理
1.查看所有服务的状态
docker-compose ps [OPTIONS] [SERVICE...]
选项 用途 -a,–all 显示所有容器,包括已停止的容器 -q,–quite 仅显示容器 ID –services 显示服务的名称 –filter 根据条件过滤容器(如 status=running) –help 显示帮助信息
2.查看所有服务的日志
docker-compose logs [OPTIONS] [SERVICE...]
选项 用途 -f,–follow 实时跟踪日志输出 –tail 显示最后 N 行日志(默认为所有日志) -t,–timestamps 显示日志的时间戳 –no-color 禁用彩色输出 –no-log-prefix 不显示日志前缀(容器名称) –since 显示从指定时间开始的日志(如 --since 1h) –until 显示到指定时间为止的日志(如 --until 2023-10-01) –help 显示帮助信息
3.构建或重新构建服务的镜像
docker-compose build [OPTIONS] [SERVICE...]
选项 用途 –build-arg 设置构建参数(如 --build-arg VAR=value) –no-cache 构建时不使用缓存 –pull 始终尝试拉取最新版本的基础镜像 -q,–quite 静默模式,仅显示构建结果 –force-rm 强制删除中间容器 –memory 设置构建时的内存限制(如 --memory 512m) –shm-size 设置 /dev/shm
的大小(如 --shm-size 1g) –parallel 并行构建多个服务 –help 显示帮助信息
4.在指定服务的容器中执行命令
docker-compose exec [OPTIONS] SERVICE COMMAND [ARGS...]
选项 用途 -d,–detach 在后台运行命令( detached 模式) –privileged 以特权模式运行命令 -u,–user 以指定用户身份运行命令 -T 禁用伪终端(TTY) –index 指定服务的实例索引(如 --index=1) -e,–env 设置环境变量 -w,–workdir 设置命令的工作目录 –help 显示帮助信息并退出
5.拉取服务依赖的镜像
docker-compose pull [OPTIONS] [SERVICE...]
选项 用途 –ignore-pull-failure 忽略拉取失败的镜像,继续拉取其他镜像 –parallel 并行拉取多个服务的镜像 -q,–quite 静默模式,仅显示拉取结果 –include-deps 同时拉取依赖服务的镜像 –no-parallel 禁用并行拉取 –help 显示帮助信息
3、镜像与容器
1.列出所有服务使用的镜像
docker-compose images [OPTIONS] [SERVICE...]
2.删除已停止的服务容器
docker-compose rm [OPTIONS] [SERVICE...]
选项 用途 -f,–force 强制删除容器,无需确认 -v,–volumes 删除与容器关联的匿名卷 -s,–stop 先停止容器,再删除容器 –help 显示帮助信息
3.查看服务容器的进程
docker-compose top [OPTIONS] [SERVICE...]
4、配置文件与环境
1.验证和查看 docker-compose.yml
文件的配置
docker-compose config [OPTIONS]
选项 用途 –services 显示服务名称 –volumes 显示卷配置 –hash 显示配置的哈希值(适用于单个服务) –resolve-image-digests 解析镜像的摘要(digest) –no-interpolate 禁用环境变量插值 -q,–quite 仅显示配置内容,不显示警告信息 –format 设置输出格式(如 json、yaml) –help 显示帮助信息
2.启动服务并执行一次性命令
docker-compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]
选项 用途 -d,–detach 在后台运行容器( detached 模式) –name 为容器指定一个名称 –entrypoint 覆盖默认的入口点(entrypoint) -e,–env 设置环境变量 -u,–user 以指定用户身份运行命令 –no-deps 不启动依赖的服务 –rm 运行后自动删除容器 -p,–publish 发布容器的端口到宿主机 –service-ports 启用服务的端口映射 -T 禁用伪终端(TTY) -w,–workdir 设置命令的工作目录 –help 显示帮助信息
5、扩展功能
1.扩展指定服务的容器数量(需删除旧容器)
docker-compose scale [OPTIONS] SERVICE=NUM [SERVICE=NUM...]
2.暂停服务容器
docker-compose pause [OPTIONS] [SERVICE...]
3.恢复暂停的服务容器
docker-compose unpause [OPTIONS] [SERVICE...]
4.查看服务容器的端口映射
docker-compose port [OPTIONS] SERVICE PRIVATE_PORT
选项 用途 –protocol 指定端口协议(tcp 或 udp),默认为 tcp –index 指定服务的实例索引(如 --index=1) –help 显示帮助信息
注意事项
Docker Compose V2 使用 docker compose
(无连字符),V1 使用 docker-compose
(带连字符)。 容器的端口到宿主机 | | --service-ports | 启用服务的端口映射 | | -T | 禁用伪终端(TTY) | | -w,–workdir | 设置命令的工作目录 | | --help | 显示帮助信息 |
5、扩展功能
1.扩展指定服务的容器数量(需删除旧容器)
docker-compose scale [OPTIONS] SERVICE=NUM [SERVICE=NUM...]
2.暂停服务容器
docker-compose pause [OPTIONS] [SERVICE...]
3.恢复暂停的服务容器
docker-compose unpause [OPTIONS] [SERVICE...]
4.查看服务容器的端口映射
docker-compose port [OPTIONS] SERVICE PRIVATE_PORT
选项 用途 –protocol 指定端口协议(tcp 或 udp),默认为 tcp –index 指定服务的实例索引(如 --index=1) –help 显示帮助信息
注意事项
Docker Compose V2 使用 docker compose
(无连字符),V1 使用 docker-compose
(带连字符)。 容器和数据卷的删除需谨慎,避免数据丢失。