文章背景图

Docker 完整入门:安装、镜像、容器、网络、数据卷、Dockerfile 与私有仓库

2026-07-25
7
-
- 分钟

Docker Engine 通过 dockerd、containerd 和 runc 管理容器。镜像是分层的只读模板,容器是镜像的运行实例;容器隔离依赖 Linux namespaces、cgroups 和安全机制,不等同虚拟机。

## 安装

生产主机使用 Docker 官方仓库或受支持发行版包,阅读防火墙兼容说明。便利安装脚本只适合测试。安装后验证:

```bash

docker version

docker info

systemctl status docker

docker run --rm hello-world

```

加入 docker 组等同授予接近 root 的权限,应严格控制成员。优先评估 rootless 模式或通过受控平台操作。

## 常用命令

```bash

docker image ls

docker pull nginx:1.28

docker run -d --name web -p 8080:80 nginx:1.28

docker logs -f web

docker exec -it web sh

docker inspect web

docker stats

docker stop web && docker rm web

```

不要用 latest 发布生产;记录镜像摘要。删除和 prune 前检查范围,卷删除可能造成数据丢失。

## 网络与卷

用户自定义 bridge 网络提供容器 DNS。端口发布可能绕过部分 ufw/firewalld 规则,应检查 DOCKER-USER 链和实际公网暴露。

```bash

docker network create app-net

docker volume create app-data

docker run -d --network app-net -v app-data:/data IMAGE

```

数据放卷或外部存储,容器本身保持可替换。卷必须独立备份并恢复演练。

## Dockerfile

```dockerfile

# syntax=docker/dockerfile:1

FROM python:3.13-slim AS builder

WORKDIR /app

COPY requirements.txt .

RUN pip wheel --no-cache-dir --wheel-dir /wheels -r requirements.txt

FROM python:3.13-slim

RUN useradd --create-home app

WORKDIR /app

COPY --from=builder /wheels /wheels

COPY . .

RUN pip install --no-cache-dir /wheels/*

USER app

CMD ["python", "app.py"]

```

使用多阶段构建、可信最小基础镜像、.dockerignore、非 root 用户和 exec 形式 CMD。构建时不把 Secret COPY 进层;在 CI 扫描、生成 SBOM、签名并固定摘要。

## 私有仓库

测试可运行 CNCF Distribution Registry,生产必须配置 TLS、认证、持久存储、访问控制、扫描、保留和备份。不要长期配置 insecure-registry。

```bash

docker tag app:1.0 registry.example.com/team/app:1.0

docker login registry.example.com

docker push registry.example.com/team/app:1.0

```

凭证使用 credential helper,不写脚本。

## 排障

1. docker info 与 daemon 日志。

2. inspect 查看状态、退出码、挂载和网络。

3. logs 与应用健康检查。

4. 主机磁盘/inode、内存、iptables/nftables 与 DNS。

5. 镜像架构、入口命令和文件权限。

容器退出是结果,不是根因。生产容器还要设置资源限制、只读文件系统、capability drop、seccomp、健康检查和集中日志。

参考:https://docs.docker.com/get-started/ 与 https://docs.docker.com/build/building/best-practices/

原创

Docker 完整入门:安装、镜像、容器、网络、数据卷、Dockerfile 与私有仓库

评论交流

文章目录