基本使用

镜像管理

  1. 获取镜像

通常从 Docker Hub 获取。

基本语法:

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

示例:

# 拉取 ubuntu 仓库中标签为 18.04 的镜像
docker pull ubuntu:18.04

#如果不指定标签,默认拉取 latest
docker pull ubuntu
  1. 列出镜像

查看本地已下载的镜像。

查看所有顶层镜像:

docker image ls
# 或者使用简写
docker images

查看所有镜像(包含中间层镜像):

docker image ls -a

列出特定镜像:

docker image ls ubuntu

只显示镜像 ID (常用于批量操作):

docker image ls -q
  1. 查看镜像体积与占用

查看镜像、容器、数据卷所占用的空间详情。

docker system df
  1. 虚悬镜像 (Dangling Images)

由于新旧镜像同名覆盖等原因,可能会产生没有仓库名、没有标签的镜像(<none>:<none>),称为虚悬镜像。

查看虚悬镜像:

docker image ls -f dangling=true

清理虚悬镜像 (安全删除):

docker image prune
  1. 删除镜像

删除指定镜像:
可以使用 镜像ID 或 镜像名:标签。

# 语法
docker image rm [选项] <镜像1> [<镜像2> ...]
# 或者简写
docker rmi <镜像ID>

注意:如果该镜像正在被某个容器使用(即使容器已停止),需要先删除容器,或添加 -f 强制删除。

容器操作

容器是镜像运行时的实体。

  1. 启动容器

docker run 是最常用的命令,它会先检查本地是否有指定镜像,没有则自动下载。

交互式运行 (用于测试或进入环境):

docker run -it --rm ubuntu:18.04 bash
  • -i:交互式操作。
  • -t:分配一个伪终端。
  • --rm:容器退出后立即自动删除(适合临时测试)。
  • bash:启动后执行的命令。

后台运行 (用于服务部署):

docker run -d --name my-nginx -p 8080:80 nginx
  • -d:后台运行 (Detached mode)。
  • --name:给容器起个名字。
  • -p:端口映射 (宿主机端口:容器端口)。
  1. 查看容器状态

查看运行中的容器:

docker ps

查看所有容器 (包含已停止的):

docker ps -a
  1. 进入运行中的容器

如果容器在后台运行,需要进入容器内部进行操作:

docker exec -it <容器ID或名称> bash
# 或者 sh
docker exec -it <容器ID或名称> /bin/sh
  • exec:在运行的容器中执行命令。
  1. 停止与删除容器

停止容器:

docker stop <容器ID或名称>

删除容器 (必须先停止,或加 -f 强制删除):

docker rm <容器ID或名称>

清理所有已停止的容器:

docker container prune

命令速查

为了方便查找,将命令按功能分类整理:

  1. 镜像与构建
命令描述示例
docker pull从仓库拉取镜像docker pull ubuntu
docker images列出本地镜像docker images
docker build使用 Dockerfile 构建镜像docker build -t my-app:v1 .
docker rmi删除镜像docker rmi my-app:v1
docker image prune删除虚悬镜像docker image prune
docker history查看镜像构建历史docker history ubuntu
  1. 容器生命周期
命令描述示例
docker run创建并启动容器docker run -d -p 80:80 nginx
docker ps查看运行中的容器docker ps
docker ps -a查看所有容器docker ps -a
docker start启动已停止的容器docker start my-con
docker stop停止运行中的容器docker stop my-con
docker restart重启容器docker restart my-con
docker rm删除容器docker rm my-con
  1. 容器操作与调试
命令描述示例
docker exec在运行容器中执行命令docker exec -it my-con bash
docker logs查看容器日志 (排错必备)docker logs -f my-con
docker inspect查看详细信息 (IP、挂载等)docker inspect my-con
docker stats查看实时资源使用情况docker stats
docker cp容器与宿主机之间复制文件docker cp file.txt my-con:/tmp
  1. 系统与网络
命令描述示例
docker network ls列出网络docker network ls
docker volume ls列出数据卷docker volume ls
docker system df查看磁盘使用情况docker system df
docker info显示系统详细信息docker info
docker login/logout登录/登出仓库docker login
  1. Docker Compose
命令描述示例
docker-compose up启动并运行服务docker-compose up -d
docker-compose down停止并移除资源docker-compose down
docker-compose logs查看服务日志docker-compose logs -f

常用参数说明

参数全称说明
-d--detach后台运行容器,并返回容器 ID。
-i--interactive交互模式,保持 STDIN 打开。
-t--tty分配一个伪终端 (Pseudo-TTY)。通常与 -i 连用。
--rm--rm容器退出时自动删除容器文件系统。
-p--publish端口映射,格式 宿主机端口:容器端口。
-v--volume挂载数据卷,格式 宿主机路径:容器路径。
-e--env设置环境变量,例如 -e MYSQL_ROOT_PASSWORD=123456。

更多推荐