Skip to content

Docker 常用命令

Docker 是一个开源的容器化平台,广泛用于开发、运输和运行应用程序。以下是一些常用的 Docker 命令及其作用:

基本命令

  1. docker version

    • 显示 Docker 的版本信息。
  2. docker info

    • 显示 Docker 系统的详细信息。
  3. docker help

    • 显示 Docker 命令的帮助信息。

镜像相关命令

  1. docker images

    • 列出本地所有的镜像。
  2. docker pull [image_name]

    • 从 Docker Hub 或其他镜像仓库拉取镜像。
  3. docker rmi [image_id]

    • 删除指定的镜像。
  4. docker build -t [image_name] [path]

    • 根据 Dockerfile 构建镜像。

容器相关命令

  1. docker ps

    • 列出正在运行的容器。
  2. docker ps -a

    • 列出所有容器(包括已停止的)。
  3. docker run [options] [image_name]

    • 创建并启动一个新的容器。
    • 常用选项:
      • -d:后台运行。
      • -p [host_port]:[container_port]:端口映射。
      • -v [host_path]:[container_path]:卷挂载。
      • --name [container_name]:指定容器名称。
  4. docker start [container_id]

    • 启动一个已停止的容器。
  5. docker stop [container_id]

    • 停止一个正在运行的容器。
  6. docker restart [container_id]

    • 重启一个容器。
  7. docker rm [container_id]

    • 删除一个容器。
  8. docker exec -it [container_id] [command]

    • 在运行中的容器内执行命令。
    • 常用命令:/bin/bash/bin/sh
  9. docker logs [container_id]

    • 查看容器的日志。

网络相关命令

  1. docker network ls

    • 列出所有的网络。
  2. docker network create [network_name]

    • 创建一个新的网络。
  3. docker network rm [network_name]

    • 删除一个网络。

卷相关命令

  1. docker volume ls

    • 列出所有的卷。
  2. docker volume create [volume_name]

    • 创建一个新的卷。
  3. docker volume rm [volume_name]

    • 删除一个卷。

docker compose 相关命令

  1. docker-compose up

    • 启动并运行所有在 docker-compose.yml 文件中定义的服务。
  2. docker-compose down

    • 停止并删除所有在 docker-compose.yml 文件中定义的服务。
  3. docker-compose ps

    • 列出所有在 docker-compose.yml 文件中定义的服务的状态。

这些命令是 Docker 日常使用中最常见的一些命令,掌握它们可以帮助你更好地管理和使用 Docker 容器和镜像。

docker compose updocker compose up -d 的区别

docker compose up

  • 执行方式:在前台运行。
  • 输出:会在终端显示所有服务的日志输出。
  • 控制台占用:占用当前的终端窗口,直到你手动停止(通常通过 Ctrl+C)。
  • 适用场景:适用于需要实时查看日志和调试的情况。

docker compose up -d

  • 执行方式:在后台运行(detached 模式)。
  • 输出:不会在终端显示日志输出,日志会被写入到 Docker 的日志系统中。
  • 控制台占用:不会占用当前的终端窗口,你可以继续在终端执行其他命令。
  • 适用场景:适用于需要在后台运行服务的情况,比如在生产环境中部署应用。

示例

假设你有一个 docker-compose.yml 文件,定义了一个简单的服务:

yaml
version: '3'
services:
    web:
        image: nginx
        ports:
            - '80:80'
  • 前台运行

    sh
    docker compose up

    这将在前台启动 nginx 服务,并在终端显示日志。

  • 后台运行

    sh
    docker compose up -d

    这将在后台启动 nginx 服务,终端不会显示日志,你可以继续使用终端执行其他命令。

查看后台运行的服务日志

如果你使用 docker compose up -d 在后台启动了服务,可以使用以下命令查看日志:

sh
docker compose logs

或者查看特定服务的日志:

sh
docker compose logs web

停止服务

无论是前台还是后台运行的服务,都可以使用以下命令停止:

sh
docker compose down

这将停止并删除所有在 docker-compose.yml 文件中定义的服务。

总结来说,docker compose up 适用于需要实时查看日志的情况,而 docker compose up -d 适用于需要在后台运行服务的情况。