文章目录
-
- [1. 安装 Docker](#1. 安装 Docker)
- [2. 配置 Docker 镜像加速器](#2. 配置 Docker 镜像加速器)
-
- [2.1 配置 Docker 镜像源](#2.1 配置 Docker 镜像源)
- [2.2 重启 Docker 服务](#2.2 重启 Docker 服务)
- [3. Docker 常用命令](#3. Docker 常用命令)
-
- [3.1 Docker 常用命令速查表](#3.1 Docker 常用命令速查表)
-
- [3.1.1 容器管理](#3.1.1 容器管理)
- [3.1.2 镜像管理](#3.1.2 镜像管理)
- [3.1.3 网络管理](#3.1.3 网络管理)
- [3.1.4 数据卷管理](#3.1.4 数据卷管理)
- [3.1.5 容器资源管理](#3.1.5 容器资源管理)
- [3.1.6 Docker Compose(容器编排)](#3.1.6 Docker Compose(容器编排))
- [3.1.7 清理与维护](#3.1.7 清理与维护)
- [3.2 常用组合命令](#3.2 常用组合命令)
- [3.3 常见问题](#3.3 常见问题)
-
- [3.3.1 如何修改容器配置?](#3.3.1 如何修改容器配置?)
- [3.3.2 如何查看容器占用的端口?](#3.3.2 如何查看容器占用的端口?)
- [3.3.3 如何查看 Docker 版本?](#3.3.3 如何查看 Docker 版本?)
1. 安装 Docker
以下以 Ubuntu24.04
为例:
bash
# 添加 Docker 仓库的 GPG 密钥
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 添加 Docker 仓库到 apt 源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 安装 Docker 以及 Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
# 可能出现以下提示,需要先配置 Docker 镜像加速器
# Unable to find image 'hello-world:latest' locally
# docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
sudo docker run hello-world
2. 配置 Docker 镜像加速器
2.1 配置 Docker 镜像源
bash
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.baidubce.com",
"http://hub-mirror.c.163.com"
]
}
EOF
2.2 重启 Docker 服务
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
3. Docker 常用命令
3.1 Docker 常用命令速查表
3.1.1 容器管理
命令 | 说明 |
---|---|
docker run -it --name my_container image:tag |
创建并运行容器(交互式) |
docker run -d --name my_container image:tag |
后台运行容器 |
docker start/stop/restart my_container |
启动/停止/重启容器 |
docker exec -it my_container /bin/bash |
进入运行中的容器 |
docker rm my_container |
删除容器 |
docker rm -f my_container |
强制删除运行中的容器 |
docker ps |
查看运行中的容器 |
docker ps -a |
查看所有容器(包括已停止的) |
docker logs my_container |
查看容器日志 |
docker logs -f my_container |
实时查看日志(类似 tail -f ) |
3.1.2 镜像管理
命令 | 说明 |
---|---|
docker pull image:tag |
拉取镜像 |
docker images |
查看本地镜像 |
docker rmi image:tag |
删除镜像 |
docker build -t my_image:tag . |
构建镜像(基于当前目录的 Dockerfile ) |
docker save -o my_image.tar image:tag |
导出镜像为 .tar 文件 |
docker load -i my_image.tar |
从 .tar 文件导入镜像 |
3.1.3 网络管理
命令 | 说明 |
---|---|
docker network ls |
查看所有网络 |
docker network create my_network |
创建自定义网络 |
docker network inspect my_network |
查看网络详情 |
docker run --network=my_network ... |
指定容器使用的网络 |
3.1.4 数据卷管理
命令 | 说明 |
---|---|
docker volume ls |
查看所有数据卷 |
docker volume create my_volume |
创建数据卷 |
docker run -v my_volume:/path/in/container ... |
挂载数据卷到容器 |
docker run -v /host/path:/container/path ... |
挂载主机目录到容器 |
3.1.5 容器资源管理
命令 | 说明 |
---|---|
docker stats |
查看容器资源占用(CPU/内存/网络) |
docker top my_container |
查看容器内的进程 |
docker update --memory 512M my_container |
限制容器内存 |
3.1.6 Docker Compose(容器编排)
命令 | 说明 |
---|---|
docker-compose up -d |
启动 docker-compose.yml 定义的服务 |
docker-compose down |
停止并删除所有容器 |
docker-compose logs -f |
查看所有服务的日志 |
docker-compose ps |
查看运行中的服务 |
3.1.7 清理与维护
命令 | 说明 |
---|---|
docker system df |
查看 Docker 磁盘使用情况 |
docker system prune |
清理未使用的容器/镜像/网络 |
docker system prune -a |
彻底清理(包括未使用的镜像) |
3.2 常用组合命令
bash
# 删除所有停止的容器
docker container prune
# 删除所有未使用的镜像
docker image prune -a
# 查看容器 IP 地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my_container
# 批量停止所有容器
docker stop $(docker ps -aq)
# 批量删除所有容器
docker rm $(docker ps -aq)
3.3 常见问题
3.3.1 如何修改容器配置?
bash
# 修改容器配置(如端口映射)
docker update --restart=always my_container
docker update --publish-add 8080:80 my_container
3.3.2 如何查看容器占用的端口?
bash
docker port my_container
3.3.3 如何查看 Docker 版本?
bash
docker --version
docker info