常用指令

Docker 的指令非常多,但日常开发和运维中最常用的可以分为以下几大类。掌握了这些指令,基本就能应付 90% 的使用场景。

一、 镜像管理 (Images)

镜像就像是“安装包”,是运行容器的基础。

  • docker images:列出本地所有的镜像。
  • docker pull <镜像名>:<标签> ​:从仓库拉取镜像(如果不加标签,默认是 :latest)。
  • 示例:docker pull nginx:latest
  • docker rmi <镜像ID或名> :删除本地镜像(需确保没有容器正在使用它)。
  • docker build -t <镜像名>:<标签> . ​:根据当前目录的 Dockerfile 构建镜像。
  • docker tag <源镜像> <新名称>:<新标签> :给镜像打标签,常用于推送前重命名。
  • docker save -o <文件名>.tar <镜像> :将镜像保存为 tar 归档文件。
  • docker load -i <文件名>.tar:从 tar 文件加载镜像。

二、 容器生命周期管理 (Containers)

容器是镜像运行后的实例。

  • docker run [选项] <镜像> :创建并启动一个新容器。
  • -d:后台运行。
  • -p 8080:80:端口映射(宿主机端口:容器内端口)。
  • --name my-nginx:给容器起个名字。
  • -v /host/path:/container/path:挂载数据卷。
  • -e MY_VAR=value:设置环境变量。
  • 示例:docker run -d -p 8080:80 --name myweb nginx
  • docker ps​:查看当前正在运行的容器。
  • docker ps -a​:查看所有容器(包括已停止的)。
  • docker stop <容器ID或名> :停止运行中的容器。
  • docker start <容器ID或名> :启动已停止的容器。
  • docker restart <容器ID或名> :重启容器。
  • docker rm <容器ID或名> ​:删除容器(运行中的容器需先停止,或加 -f 强制删除)。
  • docker kill <容器ID或名> :强行杀死容器进程。

三、 容器操作与运维 (Operations)

用于查看容器内部状态或与其交互。

  • docker exec -it <容器名> /bin/bash​:进入容器内部(最常用,-it 开启交互终端)。
  • 注:有些精简镜像没有 bash,需改用 sh
  • docker logs <容器名> :查看容器日志。
  • -f​:持续滚动查看日志(类似 tail -f)。
  • docker inspect <容器名或镜像名> :查看容器或镜像的详细元数据(JSON 格式)。
  • docker cp <宿主机路径> <容器名>:<路径> :在宿主机和容器之间拷贝文件。
  • docker stats:实时查看容器的 CPU、内存、网络 IO 等资源消耗。
  • docker top <容器名> :查看容器内运行的进程。

四、 网络与卷管理 (Networks & Volumes)

用于容器间通信和持久化数据。

  • docker network ls:列出所有网络。
  • docker network create <网络名> :创建一个新的虚拟网络(常用于容器互联)。
  • docker volume ls:列出所有数据卷。
  • docker volume create <卷名> :创建一个持久化数据卷。

五、 系统清理 (Clean up)

Docker 运行久了会占用大量磁盘空间。

  • docker system df:查看 Docker 占用的磁盘空间情况。
  • docker system prune:清理无用的对象(停止的容器、未使用的网络、悬空镜像)。
  • docker image prune:专门清理未被引用的镜像。

💡 小贴士:

如果你觉得 docker​ 命令前缀太长,可以尝试使用 Docker Compose(通过 docker-compose.yml​ 文件),只需一个 docker compose up -d 就能启动一整套服务。