免费编程教程

Docker 构建中使用 buildkit 加速

DOCKER_BUILDKIT=1 docker build 启用 buildkit。支持并行构建和更好的缓存。--mount=type=cache 加速依赖下载。本文介绍 buildkit 的启用和配置。

19 0 0
2026-07-08
Docker 中 --pull 参数强制拉取最新镜像

docker build --pull 强制拉取基础镜像的最新版本不使用缓存。适合安全更新和基础镜像定期升级的场景。不加 --pull 使用本地缓存的 base 镜像。

30 0 0
2026-07-07
Docker 中 LABEL 指令添加元数据

LABEL maintainer=email 和 LABEL version=1.0 给镜像添加元数据。docker inspect 可以查看镜像的标签。适合管理镜像的来源和用途。

28 0 0
2026-07-07
Docker 中使用 --init 管理僵尸进程

docker run --init 使用 tini 作为入口管理信号转发和回收僵尸进程。防止容器中 PID 1 不处理 SIGTERM 导致容器无法优雅关闭。

23 0 0
2026-07-07
Docker 中运行多个进程

Docker 容器内运行多进程建议用 supervisord 管理进程。最佳实践是一个容器只运行一个进程需要多进程时通过 Docker Compose 拆分容器。

20 0 0
2026-07-07
Docker 中网络别名 network alias

docker network connect --alias alias_name network container_name 给容器加网络别名。同一网络内可以通过别名访问容器实现简单的服务发现。

36 0 0
2026-07-07
Docker 中 EXPOSE 指令的作用

EXPOSE 只声明容器在运行时监听哪些端口不实际发布端口。docker run -p 实际发布端口。EXPOSE 更多是文档作用让镜像使用者知道容器需要哪些端口。

18 0 0
2026-07-07
Docker 中 USER 指令的安全配置

Dockerfile 中用 USER 切换到非 root 用户运行。先 RUN addgroup && RUN adduser 创建用户然后 USER appuser。减少容器被攻破时的危害。

29 0 0
2026-07-07
Docker 容器的健康检查 HEALTHCHECK 指令

HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost || exit 1 让 Docker 定期检查容器健康状态。不健康时触发 restart 策略。

27 0 0
2026-07-07
Docker 容器中使用宿主机的代理

Docker 容器默认不走宿主机的代理。设置环境变量 HTTP_PROXY 和 HTTPS_PROXY 为宿主机 IP 和代理端口可以让容器走宿主机的代理。

16 0 0
2026-07-07
Docker 中 COPY 和 ADD 的选择

COPY 只复制本地文件ADD 除了复制还能解压 tar 和从 URL 下载。但 URL 下载不可预测建议用 COPY 加 RUN curl。本文对比两者的用法。

14 0 0
2026-07-06
Docker 容器内查看占用端口的进程

Docker 容器内没有 systemd 和完整的 /proc 但可以用 ss -tlnp 或 cat /proc/net/tcp 查看端口监听状态。本文列出容器内可用的网络排查命令。

15 0 0
2026-07-06
Docker 容器中运行定时任务

Docker 容器默认没有运行 cron 服务需要在 Dockerfile 中安装 cron 并以 crond 作为启动命令。或者用宿主机的 cron 通过 docker exec 执行。

52 0 0
2026-07-06
Docker 构建时 COPY 的文件权限问题

Docker 的 COPY 指令默认保留源文件权限但如果不设置 RUN chmod 可能因最后用非 root 用户运行而权限不足。本文展示如何设置正确的文件权限。

20 0 0
2026-07-06
Docker overlay2 存储驱动的磁盘空间问题

Docker 的 overlay2 存储驱动每一层都是一个目录长期运行产生大量层占用磁盘。docker system prune 清理悬空层docker buildx du 查看各层大小。

17 0 0
2026-07-06
Docker 容器内使用宿主机的 GPU

Docker 容器默认无法访问宿主机的 GPU。需要安装 nvidia-docker 并在 docker run 时加 --gpus all 参数才能让容器使用 GPU。本文介绍配置步骤。

25 0 0
2026-07-06
Docker 容器时区设置影响日志时间

Docker 容器默认 UTC 时间日志时间比中国时间晚 8 小时。通过环境变量 TZ=Asia/Shanghai 或者挂载 /etc/localtime 可以纠正。本文对比两种配置方式。

26 0 0
2026-07-06
Docker 容器的 restart policy 配置

Docker 容器的重启策略决定容器退出后是否自动重启。always 一直重启unless-stopped 手动停止后不重启。on-failure 仅在异常退出时重启。

28 0 0
2026-07-05
Docker 容器退出后数据会丢失吗

容器删除后容器内写入的数据会丢失因为写在了容器的可写层。用 volume 或 bind mount 挂载宿主机目录才能持久化数据。本文解释容器文件系统的层次结构。

17 0 0
2026-07-05
Docker run --rm 参数的作用和场景

--rm 参数让容器退出后自动删除不会留下已停止的容器。适合测试和临时运行的任务。长期运行的服务不要加 --rm 否则日志就找不到了。

33 0 0
2026-07-05
Docker 容器内不推荐用 root 用户运行

Docker 容器默认以 root 运行存在安全风险一旦被入侵攻击者获得 root 权限。Dockerfile 里通过 USER 指令切换到非 root 用户运行。本文展示创建运行用户的完整 Dockerfile。

17 0 0
2026-07-05
Docker 不限制日志文件大小磁盘会被撑爆

Docker 默认不限制日志文件大小长期运行后日志可能撑满磁盘。docker run 加 log-opt max-size 10m max-file 3 或者在 compose 和 daemon.json 里全局配置可以限制。

22 0 0
2026-07-05
Docker apt-get update 太慢换国内源

Docker apt-get update 太慢换国内源是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。

26 0 0
2026-07-04
Docker 容器日志时区不对差8小时

Docker 容器日志时区不对差8小时是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。

33 0 0
2026-07-04
DevContainer 配置

使用 devcontainer.json 统一团队开发环境,消除“在我机器上能跑”。

20 0 0
2026-07-04
容器仓库 Harbor

部署私有 Docker Registry,集成漏洞扫描和 RBAC。

24 0 0
2026-07-03
内容信任 Notary

启用 Docker 内容信任确保拉取和运行的是签名过的官方镜像。

37 0 0
2026-06-18
Docker 容器化入门

理解 Docker 核心概念,学会编写 Dockerfile、构建镜像及管理容器,实现应用环境一致性。

23 0 0
2026-06-13
Docker 容器化应用部署入门到实践

从零掌握 Docker 核心概念,编写高效 Dockerfile,使用 Docker Compose 编排多服务应用,并优化镜像体积与构建速度。

25 0 0
2026-06-12