菜鸟科技网

Docker基础命令有哪些常用操作?

Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,从而实现“一次构建,到处运行”,掌握 Docker 基础命令是使用 Docker 的第一步,以下将详细介绍常用的 Docker 命令及其使用场景。

Docker基础命令有哪些常用操作?-图1
(图片来源网络,侵删)

镜像相关命令

镜像是容器的基石,是一个只读的模板,用于创建容器,以下是镜像操作的常用命令:

  1. 搜索镜像
    从 Docker Hub 官方仓库搜索镜像,可通过 --filter 参数过滤结果,例如按星级、是否官方等。

    docker search nginx --filter=stars=1000  # 搜索星级超过1000的nginx镜像
  2. 拉取镜像
    从仓库下载镜像到本地,可指定标签(版本),默认为 latest。

    docker pull ubuntu:20.04  # 拉取ubuntu 20.04版本镜像
  3. 查看本地镜像
    列出本地所有镜像,包含镜像ID、创建时间、大小等信息。

    Docker基础命令有哪些常用操作?-图2
    (图片来源网络,侵删)
    docker images  # 或 docker image ls
  4. 删除镜像
    删除本地镜像,可通过镜像ID或标签名指定,若镜像被容器使用,需先删除容器或添加 -f 强制删除。

    docker rmi ubuntu:20.04  # 删除指定标签镜像
    docker rmi $(docker images -q)  # 批量删除所有镜像(谨慎使用)
  5. 查看镜像详细信息
    以 JSON 格式显示镜像的配置、分层等详细信息。

    docker image inspect nginx:latest
  6. 构建镜像
    通过 Dockerfile 构建自定义镜像,-t 参数用于指定镜像名称和标签, 表示 Dockerfile 所在目录。

    docker build -t myapp:v1.0 .

容器相关命令

容器是镜像的运行实例,是 Docker 的核心概念,以下是容器操作的常用命令:

Docker基础命令有哪些常用操作?-图3
(图片来源网络,侵删)
  1. 运行容器
    创建并启动容器,常用参数包括:

    • -d:后台运行容器
    • -p:端口映射,格式为 主机端口:容器端口
    • --name:指定容器名称
    • -it:以交互模式运行,通常与 /bin/bash 等命令结合使用
      docker run -d --name webserver -p 8080:80 nginx  # 后台运行nginx容器,端口映射8080->80
      docker run -it ubuntu:20.04 /bin/bash  # 进入ubuntu容器交互终端
  2. 查看运行中的容器
    列出当前正在运行的容器,-a 可查看所有容器(包括已停止的)。

    docker ps  # 查看运行中的容器
    docker ps -a  # 查看所有容器
  3. 停止与启动容器

    docker stop container_id_or_name  # 停止容器
    docker start container_id_or_name  # 启动已停止的容器
    docker restart container_id_or_name  # 重启容器
  4. 进入容器
    在运行的容器中执行命令,exec 是推荐方式(不推荐 attach,可能导致终端混乱)。

    docker exec -it webserver /bin/bash  # 进入webserver容器的bash终端
  5. 删除容器
    删除已停止的容器,-f 可强制删除运行中的容器。

    docker rm container_id_or_name  # 删除指定容器
    docker rm $(docker ps -aq)  # 批量删除所有容器(谨慎使用)
  6. 查看容器日志
    查看容器的标准输出日志,--follow 可实时跟踪日志。

    docker logs webserver  # 查看webserver容器日志
    docker logs -f webserver  # 实时跟踪日志
  7. 查看容器资源占用
    实时显示容器的 CPU、内存、网络等资源使用情况。

    docker stats webserver
  8. 复制文件
    在主机和容器之间复制文件,格式为 docker cp <源路径> <目标路径>

    docker cp ./local.txt webserver:/container/  # 复制主机文件到容器内
    docker cp webserver:/container/file.txt ./  # 复制容器内文件到主机

其他常用命令

  1. 查看 Docker 信息
    显示 Docker 系统的总体信息,包括版本、存储驱动、运行时等。

    docker info
  2. 清理无用资源
    删除所有已停止的容器、未被使用的镜像、网络等,-f 可强制清理包括悬空镜像在内的所有资源。

    docker system prune  # 清理未使用的容器、网络、镜像等
    docker system prune -a  # 清理所有未使用的资源(包括悬空镜像)
  3. 查看 Docker 版本
    显示 Docker 客户端和服务端的版本信息。

    docker version

镜像与容器操作对比表

操作类别 命令示例 说明
镜像操作 docker pull nginx:latest 拉取镜像
docker images 列出本地镜像
docker build -t myapp . 构建自定义镜像
容器操作 docker run -d --name myapp nginx 启动容器
docker ps -a 查看所有容器状态
docker exec -it myapp bash 进入容器终端
资源管理 docker system prune 清理无用资源
docker stats myapp 查看容器资源占用

相关问答FAQs

Q1: 如何查看容器内部进程?
A: 可以通过 docker top <容器名或ID> 命令查看容器内运行的进程列表,类似于 Linux 系统的 top 命令。docker top webserver 将显示 nginx 容器中运行的进程信息,包括 PID、用户、CPU 及内存占用等。

Q2: 容器退出后如何保留其修改的数据?
A: 容器的文件系统是临时的,容器停止后修改的数据会丢失,要持久化数据,可通过以下两种方式:

  1. 数据卷(Volume):使用 docker run -v /host/path:/container/path 将主机目录挂载到容器内,docker run -v /data/nginx:/usr/share/nginx/html nginx,这样容器内 /usr/share/nginx/html 的修改会同步到主机的 /data/nginx 目录。
  2. 命名数据卷:通过 docker volume create myvol 创建数据卷,然后在运行容器时挂载:docker run -v myvol:/container/path nginx,数据卷的生命周期独立于容器,即使容器删除,数据卷仍可保留。
分享:
扫描分享到社交APP
上一篇
下一篇