Docker 镜像增删改查

1. 增

  • 从 Docker Hub 或私有仓库下载镜像
    1
    docker pull [镜像名]:[标签]
  • 构建镜像
    1
    2
    3
    docker build [OPTIONS] [PATH]  
    例如:
    docker build -t [镜像名]:[标签] .
  • 将镜像打包成 .tar 文件
    1
    2
    docker save -o [文件名.tar] [镜像名]  
    这样可以方便迁移或分享镜像。
  • 恢复 .tar 文件为镜像
    1
    docker load -i [文件名.tar]
  • 将本地镜像上传到 Docker Hub 或私有仓库
    1
    docker push [用户名]/[镜像名]:[标签]

2. 删

  • 删除镜像
    1
    2
    3
    4
    5
    docker rmi [镜像名或ID]  
    如果镜像正在被容器使用,需要先删除容器。
    先停止并删除容器:
    docker stop [容器ID]
    docker rm [容器ID]
  • 删除镜像
    1
    docker rmi [镜像ID]
  • 清理未使用的镜像
    1
    docker image prune

3. 改

  • 修改镜像的名称和标签
    1
    docker tag [原镜像名]:[原标签] [新镜像名]:[新标签]

4. 查

  • 列出所有已下载的镜像
    1
    docker images 或 docker image ls
  • 查看镜像的构建过程(Dockerfile 的每一层)
    1
    docker history [镜像名]

Docker 容器增删改查

1. 增

  • 从镜像创建并运行新容器
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    docker run [OPTIONS] [镜像名]  
    常用选项:
    - -d:后台运行(detach 模式)
    - --name:给容器命名(否则 Docker 随机生成)
    - -p:端口映射(主机端口:容器端口)
    - -v:数据卷挂载(主机目录:容器目录)
    - -e:设置环境变量
    - --rm:容器退出后自动删除(适用于测试)

    示例:
    docker run -d -p [主机端口]:[容器端口] [镜像名] # 端口映射
    docker run -v [主机目录]:[容器目录] [镜像名] # 数据卷挂载(持久化数据)

2. 删

  • 删除已停止的容器
    1
    docker rm [容器名或ID]
  • 强制删除运行中的容器
    1
    docker rm -f [容器名或ID]
  • 删除所有已停止的容器
    1
    docker container prune

3. 改

  • 停止或重启容器
    1
    2
    docker stop [容器名或ID]  
    docker restart [容器名或ID]
  • 启动已停止的容器
    1
    docker start [容器名或ID]
  • 强制停止容器(类似 kill -9)
    1
    docker kill [容器名或ID]
  • 进入运行中的容器终端
    1
    docker exec -it [容器名或ID] /bin/bash
  • 从容器复制文件到主机
    1
    docker cp [容器名或ID]:[容器路径] [主机路径]
  • 从主机复制文件到容器
    1
    docker cp [主机路径] [容器名或ID]:[容器路径]

4. 查

  • 查看运行中的容器
    1
    2
    docker ps  
    加 -a 选项查看所有容器(包括已停止的)。
  • 查看容器的详细信息
    1
    docker inspect [容器名或ID]
  • 查看容器日志
    1
    2
    3
    4
    5
    docker logs [容器名或ID]  
    常用选项:
    - -f:实时跟踪日志(类似 tail -f)
    - --tail N:显示最后 N 行日志
    - -t:显示时间戳
  • 查看容器的资源使用情况
    1
    docker stats [容器名或ID]