Docker 部署及基础命令手册

文档版本:v1.0 适用系统:CentOS 7/8 / Rocky Linux 8/9 / Ubuntu 20.04/22.04 Docker 版本:24.0+ / 25.0+ 编写日期:2026-05-14


1. Docker 概述

1.1 什么是 Docker

Docker 是一个开源的容器化平台,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中运行。与传统虚拟机相比,容器共享宿主机内核,无需 Guest OS,因此启动更快、资源占用更少。

1.2 Docker vs 虚拟机

对比项Docker 容器传统虚拟机
启动速度秒级分钟级
磁盘占用MB 级GB 级
性能接近原生有虚拟化损耗
系统支持同一内核的 Linux任意操作系统
隔离性进程级隔离完全隔离
部署密度单机可运行数百个容器单机通常数十个 VM

1.3 核心概念

概念说明
镜像 (Image)只读模板,包含运行应用所需的文件系统、依赖和配置
容器 (Container)镜像的运行实例,拥有独立的文件系统、网络和进程空间
仓库 (Registry)存储和分发镜像的服务(如 Docker Hub、阿里云镜像仓库)
Dockerfile描述镜像构建步骤的文本文件
Volume数据卷,用于容器数据持久化
Network容器网络,实现容器间通信

2. Docker 架构

2.1 架构图

图片[1]-Docker 部署及基础命令手册-小程博客

2.2 架构组件说明

组件说明
Docker Client用户与 Docker 交互的命令行工具(docker 命令)
Docker Daemon后台服务进程(dockerd),负责镜像/容器/网络/数据卷的管理
containerd容器运行时,负责容器的生命周期管理
runcOCI 标准容器运行时,负责创建和运行容器
Docker Registry镜像仓库,存储和分发 Docker 镜像

2.3 Docker 分层文件系统

图片[2]-Docker 部署及基础命令手册-小程博客

Docker 镜像采用分层存储设计:

  • 只读层(Image Layers):每个指令(如 RUNCOPY)生成一层,多层共享,节省磁盘空间
  • 可写层(Container Layer):容器运行时在最顶层添加可写层,容器删除后该层数据丢失
  • Copy-on-Write:修改文件时,从只读层复制到可写层再修改,不改变原始镜像

3. 部署流程总览

图片[3]-Docker 部署及基础命令手册-小程博客
步骤操作说明
系统初始化关闭 SELinux / 卸载旧版 Docker
安装依赖安装 yum-utils / apt-transport-https 等
添加 Docker 源配置阿里云等国内镜像源
安装 Dockeryum / apt 安装 docker-ce
配置镜像加速配置 daemon.json 加速器
启动服务systemctl start docker 并设为开机自启
验证安装docker version / docker run hello-world

4. 环境准备

4.1 服务器规划

配置项Master 节点Worker 节点
主机名docker-masterdocker-node1
IP 地址192.168.1.100192.168.1.101
系统CentOS 7 / Rocky 8CentOS 7 / Rocky 8
最低配置2C4G 50GB2C4G 50GB

4.2 系统初始化(所有节点执行)

# 1. 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
​
# 2. 关闭防火墙(测试环境,生产环境按需放行端口)
systemctl stop firewalld
systemctl disable firewalld
​
# 3. 配置时间同步
yum install -y chrony
systemctl enable chronyd --now
​
# 4. 配置 hosts 解析
cat >> /etc/hosts <<EOF
192.168.1.100  docker-master
192.168.1.101  docker-node1
EOF

4.3 卸载旧版 Docker(如已安装)

# CentOS/Rocky
yum remove -y docker docker-client docker-client-latest \
  docker-common docker-latest docker-latest-logrotate \
  docker-logrotate docker-engine
​
# Ubuntu/Debian
apt remove -y docker docker.io containerd runc

5. 安装 Docker

5.1 CentOS 7 / Rocky Linux 8/9

Step 1:安装依赖工具

yum install -y yum-utils device-mapper-persistent-data lvm2

Step 2:添加 Docker 官方 Yum 源(阿里云镜像)

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Step 3:安装 Docker CE

# 安装最新版
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
​
# 或安装指定版本
# 查看可用版本
yum list docker-ce --showduplicates | sort -r
​
# 安装指定版本
yum install -y docker-ce-24.0.9 docker-ce-cli-24.0.9 containerd.io

Step 4:启动并设为开机自启

systemctl enable docker --now

5.2 Ubuntu / Debian

Step 1:安装依赖工具

apt update
apt install -y ca-certificates curl gnupg lsb-release

Step 2:添加 Docker 官方 GPG Key

mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \
  gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Step 3:添加 Docker Apt 源

echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/etc/apt/keyrings/docker.gpg] \
  https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

Step 4:安装 Docker CE

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Step 5:启动并设为开机自启

systemctl enable docker --now

5.3 验证安装

# 查看 Docker 版本
docker version

# 查看 Docker 系统信息
docker info

# 运行测试容器
docker run --rm hello-world

# 期望输出:
# Hello from Docker!
# This message shows that your installation appears to be working correctly.

6. 配置镜像加速

国内环境拉取 Docker Hub 镜像较慢,需要配置镜像加速器。

6.1 创建配置文件

mkdir -p /etc/docker

6.2 编辑 daemon.json

cat > /etc/docker/daemon.json <<'EOF'
{
    "registry-mirrors": [
        "https://mirror.ccs.tencentyun.com",
        "https://docker.mirrors.ustc.edu.cn"
    ],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
    },
    "storage-driver": "overlay2",
    "exec-opts": [
        "native.cgroupdriver=systemd"
    ]
}
EOF

⚠️ 注意registry-mirrors 中的加速地址需替换为你实际可用的加速器地址。 常用加速器:阿里云(需登录获取专属地址)、腾讯云、中科大等。

6.3 重载配置并重启

systemctl daemon-reload
systemctl restart docker

6.4 验证加速器生效

docker info | grep -A 5 "Registry Mirrors"

# 期望输出:
# Registry Mirrors:
#  https://mirror.ccs.tencentyun.com/
#  https://docker.mirrors.ustc.edu.cn/

7. Docker 基础命令

7.1 命令格式

docker [OPTIONS] COMMAND [SUBCOMMAND] [ARGS...]

7.2 全局常用选项

选项说明
-D开启 Debug 模式
-H指定 Docker Daemon 连接地址
-v打印版本信息
--help查看帮助

7.3 命令分类速览

docker
├── 镜像操作:images / pull / push / build / rmi / tag / save / load
├── 容器操作:run / start / stop / restart / rm / exec / logs / ps
├── 数据管理:volume / cp
├── 网络管理:network
├── 系统管理:info / version / system
└── 编排工具:compose

8. Docker 镜像管理

8.1 搜索镜像

# 在 Docker Hub 搜索镜像
docker search nginx

# 过滤星级大于 100 的官方镜像
docker search --filter=is-official=true --filter=stars=100 nginx

8.2 下载镜像

# 下载最新版
docker pull nginx

# 下载指定版本
docker pull nginx:1.25.4

# 下载指定平台的镜像
docker pull --platform linux/amd64 nginx:alpine

8.3 查看本地镜像

# 列出所有镜像
docker images
# 或
docker image ls

# 只显示镜像 ID
docker images -q

# 过滤显示
docker images --filter "dangling=true"   # 仅显示悬空镜像
docker images --format "{{.Repository}}:{{.Tag}} {{.Size}}"  # 自定义格式

输出示例

REPOSITORYTAGIMAGE IDCREATEDSIZE
nginxlatest39286ab8a5e12 days ago188MB
redis7.2e579380f268d5 days ago138MB
centos7eeb6ee3f44bd3 weeks ago204MB

8.4 删除镜像

# 删除指定镜像
docker rmi nginx:1.25.4

# 强制删除(即使有容器在使用)
docker rmi -f nginx:1.25.4

# 删除所有悬空镜像(无标签的)
docker image prune

# 删除所有未被容器使用的镜像
docker image prune -a

8.5 镜像标签

# 给镜像打标签
docker tag nginx:latest myregistry.com/library/nginx:latest

8.6 镜像导入导出

# 导出镜像为 tar 文件
docker save -o nginx.tar nginx:latest

# 导入 tar 文件为镜像
docker load -i nginx.tar

# 查看导出文件
ls -lh nginx.tar

8.7 查看镜像详情

# 查看镜像详细信息(JSON 格式)
docker inspect nginx:latest

# 查看镜像构建历史
docker history nginx:latest

9. Docker 容器管理

9.1 创建并运行容器

# 基本运行
docker run nginx

# 常用参数完整示例
docker run -d \
  --name my-nginx \
  -p 8080:80 \
  -v /data/html:/usr/share/nginx/html \
  --restart=always \
  -e TZ=Asia/Shanghai \
  --memory=512m \
  --cpus=1.0 \
  nginx:latest

docker run 常用参数详解

参数说明示例
-d后台运行(守护模式)-d
--name容器命名--name my-nginx
-p端口映射(宿主:容器)-p 8080:80
-P随机端口映射-P
-v挂载数据卷-v /data:/app
-e设置环境变量-e MYSQL_ROOT_PASSWORD=123
--restart重启策略--restart=always
--network指定网络--network my-net
--memory内存限制--memory=512m
--cpusCPU 限制--cpus=1.0
--rm容器退出后自动删除--rm
-it交互式终端-it ubuntu bash
--privileged特权模式--privileged

重启策略说明

策略说明
no不自动重启(默认)
always总是重启(包括手动停止后 Docker 重启时)
unless-stopped总是重启,除非手动停止
on-failure[:max]非正常退出时重启,可设置最大次数

9.2 查看容器

# 查看运行中的容器
docker ps

# 查看所有容器(含已停止)
docker ps -a

# 只显示容器 ID
docker ps -q

# 自定义格式输出
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

# 查看最近创建的 3 个容器
docker ps -n 3

9.3 容器生命周期管理

# 启动已停止的容器
docker start my-nginx

# 停止运行中的容器
docker stop my-nginx

# 重启容器
docker restart my-nginx

# 强制终止容器
docker kill my-nginx

# 暂停容器
docker pause my-nginx

# 恢复暂停的容器
docker unpause my-nginx

# 删除已停止的容器
docker rm my-nginx

# 强制删除运行中的容器
docker rm -f my-nginx

# 删除所有已停止的容器
docker container prune

9.4 进入容器

# 方式一:exec(推荐,退出后容器不会停止)
docker exec -it my-nginx /bin/bash

# 方式二:attach(退出后容器会停止,慎用)
docker attach my-nginx

# 方式三:若无 bash,使用 sh
docker exec -it my-nginx /bin/sh

9.5 查看容器日志

# 查看容器日志
docker logs my-nginx

# 实时跟踪日志(类似 tail -f)
docker logs -f my-nginx

# 查看最近 100 行日志
docker logs --tail 100 my-nginx

# 查看指定时间段日志
docker logs --since "2026-05-14T08:00:00" my-nginx

# 查看最近 30 分钟的日志
docker logs --since 30m my-nginx

9.6 容器资源查看

# 查看容器资源占用(实时)
docker stats

# 查看指定容器
docker stats my-nginx

# 只显示一次(不刷新)
docker stats --no-stream

# 查看容器详细信息
docker inspect my-nginx

# 查看容器内进程
docker top my-nginx

# 查看端口映射
docker port my-nginx

9.7 容器与宿主机文件复制

# 从容器复制文件到宿主机
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf

# 从宿主机复制文件到容器
docker cp ./index.html my-nginx:/usr/share/nginx/html/index.html

9.8 提交容器为镜像

# 将容器修改提交为新镜像
docker commit -m "Add custom config" -a "admin" my-nginx my-nginx:v2

# 查看新镜像
docker images my-nginx

10. Docker 数据管理

10.1 数据卷 (Volume)

创建与管理

# 创建数据卷
docker volume create my-vol

# 列出所有数据卷
docker volume ls

# 查看数据卷详情
docker volume inspect my-vol

# 删除数据卷
docker volume rm my-vol

# 删除所有未使用的数据卷
docker volume prune

挂载数据卷

# 方式一:使用 -v 挂载
docker run -d --name my-nginx -v my-vol:/usr/share/nginx/html nginx

# 方式二:使用 --mount 挂载(更明确)
docker run -d --name my-nginx \
  --mount source=my-vol,target=/usr/share/nginx/html nginx

10.2 绑定挂载 (Bind Mount)

# 方式一:-v 挂载宿主机目录
docker run -d --name my-nginx \
  -v /data/html:/usr/share/nginx/html:ro \
  nginx

# 方式二:--mount 挂载(推荐)
docker run -d --name my-nginx \
  --mount type=bind,source=/data/html,target=/usr/share/nginx/html,readonly \
  nginx

挂载权限说明

选项说明
默认读写(rw)
:ro只读(read-only)
:rw读写(默认值)

10.3 Volume vs Bind Mount 对比

对比项VolumeBind Mount
存储位置/var/lib/docker/volumes/宿主机任意目录
管理方式Docker 命令管理需手动管理
生命周期独立于容器独立于容器
可移植性✅ 好❌ 依赖宿主机路径
适用场景持久化数据、共享数据配置文件、代码挂载

11. Docker 网络管理

11.1 网络模式

模式说明使用场景
bridge默认模式,容器通过虚拟网桥通信单机多容器通信
host容器直接使用宿主机网络需要最高网络性能
none容器无网络安全隔离场景
overlay跨主机容器通信Swarm / 集群场景
macvlan容器拥有独立 MAC 地址需要直接接入物理网络

11.2 网络管理命令

# 列出所有网络
docker network ls

# 创建自定义网络
docker network create my-net

# 创建指定网段的网络
docker network create --subnet=172.20.0.0/16 --gateway=172.20.0.1 my-net

# 查看网络详情
docker network inspect my-net

# 删除网络
docker network rm my-net

# 清理未使用的网络
docker network prune

11.3 容器加入网络

# 运行时指定网络
docker run -d --name my-nginx --network my-net nginx

# 运行中的容器加入网络
docker network connect my-net my-nginx

# 容器断开网络
docker network disconnect my-net my-nginx

11.4 容器间通信

同一自定义网络中的容器可通过容器名互访:

# 创建网络
docker network create app-net

# 启动多个容器加入同一网络
docker run -d --name redis --network app-net redis:7
docker run -d --name app --network app-net my-app

# app 容器中可通过容器名 redis 访问 Redis
# 如:redis://redis:6379

12. Dockerfile 与镜像构建

12.1 Dockerfile 指令

指令说明示例
FROM基础镜像FROM python:3.11-slim
WORKDIR设置工作目录WORKDIR /app
COPY复制文件到镜像COPY . /app
ADD复制文件(支持解压和URL)ADD app.tar.gz /opt
RUN构建时执行命令RUN pip install -r requirements.txt
ENV设置环境变量ENV TZ=Asia/Shanghai
EXPOSE声明端口EXPOSE 8080
CMD容器启动默认命令CMD ["python", "app.py"]
ENTRYPOINT容器入口点ENTRYPOINT ["python"]
ARG构建参数ARG VERSION=1.0
VOLUME声明数据卷VOLUME ["/data"]
USER指定运行用户USER app
HEALTHCHECK健康检查HEALTHCHECK CMD curl -f http://localhost/

12.2 Dockerfile 最佳实践

# 1. 使用精简基础镜像
FROM python:3.11-slim AS builder

# 2. 设置工作目录
WORKDIR /app

# 3. 先复制依赖文件(利用缓存层)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 4. 再复制源码(代码变动不影响依赖缓存层)
COPY . .

# 5. 设置环境变量
ENV PYTHONUNBUFFERED=1 \
    TZ=Asia/Shanghai

# 6. 声明端口
EXPOSE 8080

# 7. 使用非 root 用户
RUN useradd -m appuser
USER appuser

# 8. 启动命令
CMD ["python", "app.py"]

12.3 构建镜像

# 基本构建
docker build -t my-app:v1.0 .

# 指定 Dockerfile
docker build -f Dockerfile.prod -t my-app:v1.0 .

# 构建时不使用缓存
docker build --no-cache -t my-app:v1.0 .

# 指定构建参数
docker build --build-arg VERSION=2.0 -t my-app:v2.0 .

12.4 多阶段构建

# 阶段一:编译
FROM golang:1.21 AS builder
WORKDIR /src
COPY . .
RUN CGO_ENABLED=0 go build -o /app/myapp

# 阶段二:运行(最终镜像只有编译产物,体积更小)
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata
COPY --from=builder /app/myapp /usr/local/bin/myapp
EXPOSE 8080
CMD ["myapp"]

13. Docker Compose 编排

13.1 安装 Docker Compose

Docker Compose V2 已包含在 docker-compose-plugin 中(前文安装 Docker 时已安装)。

# 验证安装
docker compose version

# 输出示例:Docker Compose version v2.24.5

13.2 compose.yml 文件示例

# compose.yml
version: "3.8"

services:
  # Web 应用
  web:
    image: nginx:1.25-alpine
    container_name: my-web
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - api
    networks:
      - app-net
    restart: unless-stopped

  # API 服务
  api:
    build:
      context: ./api
      dockerfile: Dockerfile
    container_name: my-api
    ports:
      - "3000:3000"
    environment:
      - DB_HOST=db
      - DB_PORT=3306
      - DB_NAME=myapp
      - DB_USER=root
      - DB_PASSWORD=123456
    depends_on:
      db:
        condition: service_healthy
    networks:
      - app-net
    restart: unless-stopped

  # MySQL 数据库
  db:
    image: mysql:8.0
    container_name: my-db
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=myapp
    volumes:
      - db-data:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - app-net
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped

# 数据卷
volumes:
  db-data:

# 网络
networks:
  app-net:
    driver: bridge

13.3 Docker Compose 常用命令

# 启动所有服务(后台运行)
docker compose up -d

# 启动并重新构建镜像
docker compose up -d --build

# 查看服务状态
docker compose ps

# 查看服务日志
docker compose logs -f

# 查看指定服务日志
docker compose logs -f api

# 进入容器
docker compose exec api /bin/bash

# 停止所有服务
docker compose stop

# 停止并删除所有容器、网络
docker compose down

# 停止并删除所有容器、网络、数据卷
docker compose down -v

# 重启指定服务
docker compose restart api

# 扩容(启动多个实例)
docker compose up -d --scale api=3

14. 常用运维命令速查

14.1 系统管理

操作命令
启动 Dockersystemctl start docker
停止 Dockersystemctl stop docker
重启 Dockersystemctl restart docker
开机自启systemctl enable docker
查看状态systemctl status docker
Docker 信息docker info
Docker 版本docker version
磁盘占用docker system df
清理所有无用资源docker system prune -a

14.2 镜像操作

操作命令
搜索镜像docker search <关键词>
拉取镜像docker pull <镜像名>:<标签>
列出镜像docker images
删除镜像docker rmi <镜像名>:<标签>
导出镜像docker save -o <文件名>.tar <镜像名>
导入镜像docker load -i <文件名>.tar
镜像打标签docker tag <源镜像> <目标镜像>
推送镜像docker push <镜像名>
构建镜像docker build -t <镜像名> .
镜像详情docker inspect <镜像名>
镜像历史docker history <镜像名>

14.3 容器操作

操作命令
运行容器docker run -d --name <名> <镜像>
列出运行中容器docker ps
列出所有容器docker ps -a
启动容器docker start <容器名/ID>
停止容器docker stop <容器名/ID>
重启容器docker restart <容器名/ID>
删除容器docker rm <容器名/ID>
进入容器docker exec -it <容器名> /bin/bash
查看日志docker logs -f <容器名>
查看资源占用docker stats
查看容器详情docker inspect <容器名>
复制文件docker cp <容器名>:<路径> <宿主路径>
提交为镜像docker commit <容器名> <新镜像名>

14.4 数据卷操作

操作命令
创建数据卷docker volume create <卷名>
列出数据卷docker volume ls
查看数据卷详情docker volume inspect <卷名>
删除数据卷docker volume rm <卷名>
清理未用数据卷docker volume prune

14.5 网络操作

操作命令
列出网络docker network ls
创建网络docker network create <网络名>
查看网络详情docker network inspect <网络名>
容器加入网络docker network connect <网络名> <容器名>
容器断开网络docker network disconnect <网络名> <容器名>
删除网络docker network rm <网络名>
清理未用网络docker network prune

15. 常见问题排查

❌ 问题一:docker 命令需要 sudo

原因:当前用户不在 docker 用户组中。

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 刷新组权限(或重新登录)
newgrp docker

# 验证
docker ps

⚠️ 安全提醒:加入 docker 组等效于拥有 root 权限,生产环境需谨慎。


❌ 问题二:镜像拉取超时 / 失败

# 1. 检查网络连通性
ping -c 3 registry-1.docker.io

# 2. 确认镜像加速器配置
cat /etc/docker/daemon.json

# 3. 重启 Docker
systemctl restart docker

# 4. 尝试使用其他镜像源
docker pull registry.cn-hangzhou.aliyuncs.com/library/nginx:latest

# 5. 手动导入离线镜像
docker load -i nginx.tar

❌ 问题三:容器启动后立即退出

# 查看容器退出码
docker ps -a --filter "status=exited"

# 查看退出日志
docker logs <容器名>

# 常见退出码
# 0   - 正常退出(如一次性任务完成)
# 1   - 应用错误
# 137 - OOM 被杀死(内存不足)
# 139 - 段错误(Segmentation Fault)

解决方法

# 前台运行查看详细报错
docker run -it --rm <镜像名> /bin/bash

# 查看容器退出前最后的日志
docker logs --tail 50 <容器名>

❌ 问题四:容器时间不正确

# 方式一:挂载宿主机时区文件
docker run -d -v /etc/localtime:/etc/localtime:ro nginx

# 方式二:设置环境变量
docker run -d -e TZ=Asia/Shanghai nginx

# 方式三:在 Dockerfile 中设置
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

❌ 问题五:磁盘空间不足

# 查看 Docker 磁盘使用
docker system df

# 输出示例:
# Images          5        1.2GB
# Containers      3        150MB
# Local Volumes   2        500MB
# Build Cache     10       800MB

# 清理无用资源(删除停止的容器、悬空镜像、未用网络)
docker system prune

# 深度清理(包括未被容器使用的镜像和构建缓存)
docker system prune -a

# 只清理构建缓存
docker builder prune

# 设置日志大小限制(在 daemon.json 中)
{
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
    }
}

❌ 问题六:容器间无法通信

# 1. 检查是否在同一网络
docker network inspect <网络名>

# 2. 确认防火墙未拦截
iptables -L -n | grep DROP

# 3. 测试容器间连通性
docker exec -it <容器A> ping <容器B>

# 4. 注意:默认 bridge 网络不支持容器名解析
# 需使用自定义网络或 --link(已弃用)
docker network create my-net
docker run --network my-net ...

❌ 问题七:端口冲突

# 查看端口占用
ss -tlnp | grep :8080

# 修改映射端口
docker run -p 8081:80 nginx   # 改用 8081

# 或停止占用端口的进程
kill -9 <PID>

附录 A:Docker 目录结构

/var/lib/docker/
├── buildkit/       # 构建缓存
├── containers/     # 容器数据
├── image/          # 镜像元数据
├── network/        # 网络配置
├── overlay2/       # 存储驱动数据
├── plugins/        # 插件
├── swarm/          # Swarm 数据
├── tmp/            # 临时文件
├── trust/          # 信任数据
└── volumes/        # 数据卷

附录 B:Docker 常用端口

端口服务说明
2375Docker DaemonHTTP 远程 API(非加密)
2376Docker DaemonHTTPS 远程 API(加密)
5000RegistryDocker 私有仓库
9000Portainer容器管理 UI

附录 C:卸载 Docker

# CentOS/Rocky
yum remove -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docker /var/lib/containerd /etc/docker

# Ubuntu/Debian
apt purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docker /var/lib/containerd /etc/docker

📌 文档维护提示:本文档基于 Docker CE 24.0+ 编写,如需了解 Kubernetes 容器编排,请参阅《Kubernetes 集群部署手册》。如需可视化容器管理界面,推荐部署 Portainer

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容