Docker 命令大全
1. Docker安装与进程管理
1.1 Docker安装
Windows安装Docker
下载Docker Desktop for Windows
- 访问 Docker官网
- 下载Docker Desktop Installer.exe
安装要求
- Windows 10 64位:专业版、企业版或教育版
- 启用Windows Hyper-V功能
- 启用BIOS虚拟化支持
安装步骤
- 双击安装包运行
- 按照安装向导完成安装
- 安装完成后重启计算机
Linux安装Docker
Ubuntu系统:
# 更新apt包索引
sudo apt-get update
# 安装必要的系统工具
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置Docker稳定版仓库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
CentOS系统:
# 安装必要的系统工具
sudo yum install -y yum-utils
# 添加Docker仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker Engine
sudo yum install docker-ce docker-ce-cli containerd.io
macOS安装Docker
下载Docker Desktop for Mac
- 访问 Docker官网
- 下载Docker.dmg
安装要求
- macOS 10.14或更高版本
安装步骤
- 双击Docker.dmg打开
- 将Docker拖到Applications文件夹
- 从Applications文件夹启动Docker
1.2 Docker服务管理
命令格式:
sudo systemctl COMMAND docker
命令示例:
# 启动Docker服务
sudo systemctl start docker
# 停止Docker服务
sudo systemctl stop docker
# 重启Docker服务
sudo systemctl restart docker
# 设置开机自启
sudo systemctl enable docker
# 查看Docker服务状态
sudo systemctl status docker
1.3 Docker进程管理
docker info - 显示系统信息
命令格式:
docker info [OPTIONS]
命令示例:
# 查看Docker系统信息
docker info
# 以JSON格式显示信息
docker info --format '{{json .}}'
命令说明: 显示Docker系统信息,包括容器数量、镜像数量、系统配置、运行时信息等。
docker stats - 显示容器资源使用统计
命令格式:
docker stats [OPTIONS] [CONTAINER...]
命令示例:
# 显示所有容器的资源使用情况
docker stats
# 显示指定容器的资源使用情况
docker stats container1 container2
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
--all | 否 | boolean | - | false | 显示所有容器(包括未运行) |
--format | 否 | string | - | - | 格式化输出 |
--no-stream | 否 | boolean | - | false | 禁用流式统计,只显示一次 |
docker top - 查看容器中运行的进程
命令格式:
docker top CONTAINER [ps OPTIONS]
命令示例:
# 查看容器中运行的进程
docker top mynginx
# 使用自定义ps选项
docker top mynginx aux
命令说明: 显示容器中运行的进程信息,类似于Linux的top命令。
命令示例:
# 创建自定义网络
docker network create mynetwork
# 将容器连接到网络
docker network connect mynetwork mycontainer
命令说明: 管理Docker网络,包括创建、删除、连接容器等操作。
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
--driver, -d | 否 | string | bridge/host/overlay/macvlan | bridge | 网络驱动类型 |
--subnet | 否 | string | - | - | 子网CIDR |
--gateway | 否 | string | - | - | 网关地址 |
2. 容器生命周期管理
2.1 docker run - 创建并运行容器
命令格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
命令示例:
# 运行一个简单的nginx容器
docker run -d -p 80:80 --name mynginx nginx
# 运行一个带环境变量的MySQL容器
docker run -d \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
命令说明: 创建一个新的容器并运行一个命令。这是最常用的Docker命令之一,可以用来启动容器。
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
-d, --detach | 否 | boolean | - | false | 后台运行容器 |
-p, --publish | 否 | list | - | - | 映射容器端口到主机 |
--name | 否 | string | - | - | 为容器指定名称 |
-e, --env | 否 | list | - | - | 设置环境变量 |
-v, --volume | 否 | list | - | - | 绑定挂载卷 |
--network | 否 | string | bridge/host/none | bridge | 连接容器到网络 |
--restart | 否 | string | no/always/on-failure/unless-stopped | no | 容器重启策略 |
2.2 docker start/stop/restart - 容器操作
命令格式:
docker start CONTAINER [CONTAINER...]
docker stop CONTAINER [CONTAINER...]
docker restart CONTAINER [CONTAINER...]
命令示例:
# 启动容器
docker start mynginx
# 停止容器
docker stop mynginx
# 重启容器
docker restart mynginx
命令说明:
- start:启动一个或多个已经停止的容器
- stop:停止一个或多个运行中的容器
- restart:重启一个或多个容器
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
-t, --time | 否 | int | - | 10 | 等待停止的超时时间(秒) |
3. 容器运维操作
3.1 docker ps - 列出容器
命令格式:
docker ps [OPTIONS]
命令示例:
# 列出所有运行中的容器
docker ps
# 列出所有容器(包括已停止的)
docker ps -a
命令说明: 列出容器信息。默认只显示正在运行的容器。
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
-a, --all | 否 | boolean | - | false | 显示所有容器 |
-q, --quiet | 否 | boolean | - | false | 只显示容器ID |
-n, --last | 否 | int | - | -1 | 显示最后n个容器 |
3.2 docker logs - 查看容器日志
命令格式:
docker logs [OPTIONS] CONTAINER
命令示例:
# 查看容器实时日志
docker logs -f mynginx
# 查看容器最后100行日志
docker logs --tail 100 mynginx
命令说明: 获取容器的日志信息。
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
-f, --follow | 否 | boolean | - | false | 跟踪日志输出 |
--tail | 否 | int | - | all | 显示日志尾部n行 |
--since | 否 | string | - | - | 显示某个时间之后的日志 |
4. 镜像管理
4.1 docker images - 列出镜像
命令格式:
docker images [OPTIONS] [REPOSITORY[:TAG]]
命令示例:
# 列出所有镜像
docker images
# 列出特定仓库的镜像
docker images nginx
命令说明: 列出本地主机上的镜像。
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
-a, --all | 否 | boolean | - | false | 显示所有镜像 |
-q, --quiet | 否 | boolean | - | false | 只显示镜像ID |
--digests | 否 | boolean | - | false | 显示摘要信息 |
4.2 docker pull/push - 拉取和推送镜像
命令格式:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker push [OPTIONS] NAME[:TAG]
命令示例:
# 拉取镜像
docker pull nginx:latest
# 推送镜像到仓库
docker push myregistry.com/myimage:tag
命令说明:
- pull:从镜像仓库拉取镜像
- push:将本地镜像推送到镜像仓库
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
-a, --all-tags | 否 | boolean | - | false | 拉取所有标签 |
--disable-content-trust | 否 | boolean | - | true | 忽略镜像签名验证 |
5. 网络管理
5.1 docker network - 网络管理命令
命令格式:
docker network COMMAND
6. 数据卷管理
6.1 docker volume - 数据卷管理命令
命令格式:
docker volume COMMAND
命令示例:
# 创建数据卷
docker volume create myvolume
# 查看数据卷详情
docker volume inspect myvolume
命令说明: 管理Docker数据卷,用于数据持久化存储。
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
--driver, -d | 否 | string | local/... | local | 数据卷驱动 |
--opt, -o | 否 | map | - | - | 驱动特定选项 |
7. 系统和信息
7.1 docker info - 显示系统信息
命令格式:
docker info [OPTIONS]
命令示例:
# 显示Docker系统信息
docker info
命令说明: 显示Docker系统信息,包括容器数量、镜像数量、系统配置等。
7.2 docker version - 显示版本信息
命令格式:
docker version [OPTIONS]
命令示例:
# 显示Docker版本信息
docker version
命令说明: 显示Docker客户端和服务器版本信息。
参数说明:
参数名 | 必填 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|---|
--format | 否 | string | - | - | 格式化输出 |