Greenhats の Blog.

Docker 常用命令

2025/02/01
loading

Docker常用命令

Docker的常用命令整理,按功能分类说明:


容器生命周期管理

  1. 启动容器

    1
    2
    3
    4
    docker run -d --name my_container nginx:latest       # 后台运行容器
    docker run -it --name my_alpine alpine:latest /bin/sh # 交互式运行并进入Shell
    docker run -p 8080:80 nginx # 映射主机8080端口到容器80端口
    docker run -v /host/path:/container/path nginx # 挂载主机目录到容器
  2. 停止/重启容器

    1
    2
    3
    docker stop my_container        # 优雅停止容器
    docker restart my_container # 重启容器
    docker kill my_container # 强制停止容器
  3. 删除容器

    1
    2
    3
    docker rm my_container          # 删除已停止的容器
    docker rm -f my_container # 强制删除运行中的容器
    docker container prune # 删除所有已停止的容器

镜像管理

  1. 拉取/推送镜像

    1
    2
    docker pull ubuntu:20.04        # 拉取指定版本镜像
    docker push myusername/myimage:tag # 推送镜像到仓库
  2. 构建镜像

    1
    2
    docker build -t myimage:1.0 .   # 根据当前目录Dockerfile构建镜像
    docker build -t myimage --build-arg ENV=prod . # 带构建参数
  3. 删除镜像

    1
    2
    3
    docker rmi myimage:1.0          # 删除指定镜像
    docker image prune # 删除未被使用的镜像
    docker image prune -a # 删除所有未被容器引用的镜像

查看信息

  1. 列出容器与镜像

    1
    2
    3
    docker ps                 # 查看运行中的容器
    docker ps -a # 查看所有容器(包括已停止的)
    docker images # 列出本地所有镜像
  2. 查看容器详情

    1
    2
    3
    4
    docker inspect my_container  # 显示容器详细信息(JSON格式)
    docker logs my_container # 查看容器日志
    docker logs -f my_container # 实时跟踪日志(类似tail -f)
    docker stats # 实时监控容器资源使用(CPU/内存)

进入容器操作

  1. 执行命令
    1
    2
    docker exec -it my_container /bin/bash   # 进入容器的交互式Shell
    docker exec my_container ls /app # 在容器内执行命令并退出

网络管理

  1. 查看与创建网络

    1
    2
    3
    docker network ls             # 列出所有网络
    docker network create my_net # 创建自定义网络
    docker network inspect my_net # 查看网络详情
  2. 容器连接网络

    1
    2
    docker run --network=my_net --name app1 myimage # 启动时指定网络
    docker network connect my_net existing_container # 将已有容器加入网络

数据卷管理

  1. 创建与管理数据卷
    1
    2
    3
    4
    docker volume create my_vol          # 创建数据卷
    docker volume ls # 列出所有数据卷
    docker volume inspect my_vol # 查看数据卷详情
    docker run -v my_vol:/container/path nginx # 挂载数据卷到容器

组合命令(Docker Compose)

  1. 常用操作
    1
    2
    3
    4
    docker-compose up -d        # 后台启动所有服务
    docker-compose down # 停止并删除所有容器/网络
    docker-compose logs -f # 查看所有服务的实时日志
    docker-compose build # 重新构建所有服务的镜像

实用技巧

  1. 批量操作

    1
    2
    3
    docker stop $(docker ps -aq)              # 停止所有容器
    docker rm $(docker ps -aq) # 删除所有容器
    docker rmi $(docker images -q) # 删除所有镜像(谨慎使用!)
  2. 快速清理资源

    1
    2
    docker system prune         # 删除未使用的镜像、网络、容器(需确认)
    docker system prune -a # 删除所有未被使用的资源(包括悬空镜像)
  3. 导出/导入镜像

    1
    2
    docker save -o myimage.tar myimage:1.0  # 导出镜像为tar文件
    docker load -i myimage.tar # 导入镜像

配置示例

  1. Dockerfile 基础模板

    1
    2
    3
    4
    5
    6
    7
    FROM node:16-alpine
    WORKDIR /app
    COPY package*.json ./
    RUN npm install
    COPY . .
    EXPOSE 3000
    CMD ["npm", "start"]
  2. docker-compose.yml 示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    version: '3'
    services:
    web:
    image: nginx:latest
    ports:
    - "80:80"
    volumes:
    - ./html:/usr/share/nginx/html
    db:
    image: mysql:8.0
    environment:
    MYSQL_ROOT_PASSWORD: my-secret-pw

CATALOG
  1. 1. Docker常用命令
    1. 1.0.1. 容器生命周期管理
    2. 1.0.2. 镜像管理
    3. 1.0.3. 查看信息
    4. 1.0.4. 进入容器操作
    5. 1.0.5. 网络管理
    6. 1.0.6. 数据卷管理
    7. 1.0.7. 组合命令(Docker Compose)
    8. 1.0.8. 实用技巧
    9. 1.0.9. 配置示例