在工作中经常使用到的docker的一些命令

在工作中经常使用到的docker的一些命令
最新回答
泼得千树泪

2021-11-10 04:03:55

在工作中,Docker 是常用的容器化工具,以下是一些经常使用的 Docker 命令分类整理:

Docker 服务管理命令

用于管理 Docker 守护进程(服务)的启动、停止、重启等操作。

  • 查看版本详细信息:docker version显示 Docker 客户端和服务端的完整版本信息,包括 API 版本、操作系统架构等。
  • 查看版本简要信息:docker -v仅显示 Docker 的版本号,适用于快速确认安装状态。
  • 启动 Docker 服务:systemctl start docker在基于 systemd 的 Linux 系统(如 Ubuntu、CentOS)上启动 Docker 服务。
  • 关闭 Docker 服务:systemctl stop docker停止 Docker 服务,释放系统资源。
  • 设置开机启动:systemctl enable docker配置 Docker 服务随系统启动自动运行。
  • 重启 Docker 服务:service docker restart重启 Docker 服务(适用于部分旧版系统或非 systemd 环境)。
  • 关闭 Docker 服务:service docker stop停止 Docker 服务(非 systemd 环境)。
容器操作命令

容器是 Docker 的核心功能,以下命令用于创建、启动、停止、删除等操作。

  • 创建并启动容器:docker run [OPTIONS] IMAGE [COMMAND]常用选项:

    -d:后台运行容器。

    -p:端口映射(如 -p 8080:80)。

    --name:指定容器名称。

    -v:挂载数据卷(如 -v /host/path:/container/path)。示例:docker run -d --name mynginx -p 80:80 nginx

  • 启动已停止的容器:docker start [CONTAINER ID/NAME]重新启动处于停止状态的容器。
  • 查看运行中的容器:docker ps列出当前正在运行的容器,显示容器 ID、名称、镜像、状态等信息。

    添加 -a 参数可查看所有容器(包括已停止的)。

    添加 -q 参数仅显示容器 ID。

  • 终止容器:docker stop [CONTAINER ID/NAME]发送终止信号(SIGTERM)给容器,等待容器优雅退出。
  • 强制终止容器:docker kill [CONTAINER ID/NAME]立即强制终止容器(发送 SIGKILL 信号)。
  • 重启容器:docker restart [CONTAINER ID/NAME]重启容器,相当于先停止再启动。
  • 退出容器

    若容器以交互模式运行(如 docker run -it),输入 exit 或按 Ctrl+D 可退出并停止容器。

    若需保持容器运行,按 Ctrl+P 后按 Ctrl+Q 退出但不停止容器。

  • 进入容器

    docker attach [CONTAINER ID/NAME]:直接进入容器的主进程(不推荐,退出可能导致容器停止)。

    docker exec -it [CONTAINER ID/NAME] /bin/bash:以交互模式进入容器(推荐使用)。

  • 导出容器快照:docker export [CONTAINER ID/NAME] > filename.tar将容器的文件系统导出为 tar 归档文件。
  • 导入容器快照:docker import filename.tar [REPOSITORY[:TAG]]从 tar 归档文件导入为镜像(不保留容器历史记录)。
  • 删除容器:docker rm [CONTAINER ID/NAME]删除已停止的容器,添加 -f 参数可强制删除运行中的容器。
  • 查看容器日志:docker logs [CONTAINER ID/NAME]显示容器的标准输出日志,常用选项:

    -f:实时跟踪日志。

    --tail:显示最后 N 行日志(如 --tail 100)。

镜像操作命令

镜像是容器的模板,以下命令用于检索、拉取、删除等操作。

  • 检索镜像:docker search [KEYWORD]在 Docker Hub 中搜索镜像,显示镜像名称、描述、评分等信息。
  • 获取镜像:docker pull [IMAGE[:TAG]]从仓库拉取镜像到本地,默认拉取最新版本(latest)。示例:docker pull ubuntu:20.04
  • 列出本地镜像

    docker images:显示本地所有镜像,包括仓库、标签、镜像 ID 和大小。

    docker images ls:与 docker images 等效。

  • 删除镜像

    docker rmi [IMAGE ID/REPOSITORY[:TAG]]:删除指定镜像。

    docker images rm:同 docker rmi。

    添加 -f 参数可强制删除被容器引用的镜像。

  • 导出镜像:docker save -o filename.tar [IMAGE[:TAG]]将镜像保存为 tar 归档文件,保留完整镜像层和元数据。
  • 导入镜像:docker load -i filename.tar从 tar 归档文件导入镜像(保留镜像历史记录)。
Dockerfile 相关命令

Dockerfile 是构建镜像的脚本文件,以下命令用于构建和运行镜像。

  • 构建镜像:docker build -t [REPOSITORY[:TAG]] [CONTEXT_PATH]根据 Dockerfile 构建镜像,常用选项:

    -t:指定镜像名称和标签。

    -f:指定 Dockerfile 路径(默认使用 CONTEXT_PATH/Dockerfile)。示例:docker build -t myapp:1.0 .

  • 运行镜像:docker run [OPTIONS] IMAGE [COMMAND]与容器启动命令相同,用于从镜像创建并运行容器。
  • Dockerfile 常用指令

    COPY:将本地文件复制到容器内。

    ADD:类似 COPY,但支持自动解压和远程 URL。

    CMD:指定容器启动时默认执行的命令(可被 docker run 覆盖)。

    ENV:设置环境变量。

    EXPOSE:声明容器运行时监听的端口(仅作为文档说明,实际需配合 -p 使用)。

以上命令覆盖了 Docker 日常使用中的核心场景,熟练掌握可显著提升开发效率。