Docker 常用命令
Docker 是一个开源的容器化平台,广泛用于开发、运输和运行应用程序。以下是一些常用的 Docker 命令及其作用:
基本命令
docker version
- 显示 Docker 的版本信息。
docker info
- 显示 Docker 系统的详细信息。
docker help
- 显示 Docker 命令的帮助信息。
镜像相关命令
docker images
- 列出本地所有的镜像。
docker pull [image_name]
- 从 Docker Hub 或其他镜像仓库拉取镜像。
docker rmi [image_id]
- 删除指定的镜像。
docker build -t [image_name] [path]
- 根据 Dockerfile 构建镜像。
容器相关命令
docker ps
- 列出正在运行的容器。
docker ps -a
- 列出所有容器(包括已停止的)。
docker run [options] [image_name]
- 创建并启动一个新的容器。
- 常用选项:
-d:后台运行。-p [host_port]:[container_port]:端口映射。-v [host_path]:[container_path]:卷挂载。--name [container_name]:指定容器名称。
docker start [container_id]
- 启动一个已停止的容器。
docker stop [container_id]
- 停止一个正在运行的容器。
docker restart [container_id]
- 重启一个容器。
docker rm [container_id]
- 删除一个容器。
docker exec -it [container_id] [command]
- 在运行中的容器内执行命令。
- 常用命令:
/bin/bash或/bin/sh。
docker logs [container_id]
- 查看容器的日志。
网络相关命令
docker network ls
- 列出所有的网络。
docker network create [network_name]
- 创建一个新的网络。
docker network rm [network_name]
- 删除一个网络。
卷相关命令
docker volume ls
- 列出所有的卷。
docker volume create [volume_name]
- 创建一个新的卷。
docker volume rm [volume_name]
- 删除一个卷。
docker compose 相关命令
docker-compose up
- 启动并运行所有在
docker-compose.yml文件中定义的服务。
- 启动并运行所有在
docker-compose down
- 停止并删除所有在
docker-compose.yml文件中定义的服务。
- 停止并删除所有在
docker-compose ps
- 列出所有在
docker-compose.yml文件中定义的服务的状态。
- 列出所有在
这些命令是 Docker 日常使用中最常见的一些命令,掌握它们可以帮助你更好地管理和使用 Docker 容器和镜像。
docker compose up 和 docker compose up -d 的区别
docker compose up
- 执行方式:在前台运行。
- 输出:会在终端显示所有服务的日志输出。
- 控制台占用:占用当前的终端窗口,直到你手动停止(通常通过
Ctrl+C)。 - 适用场景:适用于需要实时查看日志和调试的情况。
docker compose up -d
- 执行方式:在后台运行(detached 模式)。
- 输出:不会在终端显示日志输出,日志会被写入到 Docker 的日志系统中。
- 控制台占用:不会占用当前的终端窗口,你可以继续在终端执行其他命令。
- 适用场景:适用于需要在后台运行服务的情况,比如在生产环境中部署应用。
示例
假设你有一个 docker-compose.yml 文件,定义了一个简单的服务:
version: '3'
services:
web:
image: nginx
ports:
- '80:80'前台运行:
shdocker compose up这将在前台启动
nginx服务,并在终端显示日志。后台运行:
shdocker compose up -d这将在后台启动
nginx服务,终端不会显示日志,你可以继续使用终端执行其他命令。
查看后台运行的服务日志
如果你使用 docker compose up -d 在后台启动了服务,可以使用以下命令查看日志:
docker compose logs或者查看特定服务的日志:
docker compose logs web停止服务
无论是前台还是后台运行的服务,都可以使用以下命令停止:
docker compose down这将停止并删除所有在 docker-compose.yml 文件中定义的服务。
总结来说,docker compose up 适用于需要实时查看日志的情况,而 docker compose up -d 适用于需要在后台运行服务的情况。