可观测学堂

可观测问答

聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

运行中的 Docker 容器能动态暴露端口吗? cover
概念指南

运行中的 Docker 容器能动态暴露端口吗?

不能。端口发布(-p)只能在创建容器时指定;docker container port 只是查看映射的命令。运行中想对外开端口:重建容器(标准)、iptables/socat 转发(应急)。本文说明各方案。

报错 Cannot connect to the Docker daemon 怎么解决? cover
概念指南

报错 Cannot connect to the Docker daemon 怎么解决?

报 Is the docker daemon running 时按序排查:systemctl status/start docker 确认守护进程、sudo docker info 测连通、把用户加入 docker 组解决权限。

Docker 客户端连不上守护进程:深度排查指南 cover
概念指南

Docker 客户端连不上守护进程:深度排查指南

can not connect to docker daemon 的深层原因:DOCKER_HOST 环境变量指错、socket 路径被改、WSL/Desktop 集成断开、守护进程崩溃循环。本文按客户端→socket→守护进程三层排查。

Docker 报 Got permission denied while trying to connect to the Docker daemon socket 怎么修复? cover
概念指南

Docker 报 Got permission denied while trying to connect to the Docker daemon socket 怎么修复?

该错误是当前用户无权访问 /var/run/docker.sock:把用户加入 docker 组(usermod -aG docker $USER)并重新登录即可;曾用 sudo 跑过 docker 的还要修 ~/.docker 目录属主。

Docker 报错 name is already in use by container 怎么办? cover
概念指南

Docker 报错 name is already in use by container 怎么办?

容器名全局唯一,报名称冲突时:docker ps -a 找到占用者,docker rm 删除或 docker rename 改名;脚本化启动建议用 --rm 或不指定名字。本文给出处理流程。

Docker 报 no space left on device(磁盘空间不足)怎么解决? cover
概念指南

Docker 报 no space left on device(磁盘空间不足)怎么解决?

先 docker system df 看空间去向,再 docker system prune -a 清理未使用资源;日志文件撑爆用 log-opt 限制,构建缓存用 builder prune。本文给出去向分析、清理命令与预防配置。

连接 Docker 时报 permission denied:完整排查清单 cover
概念指南

连接 Docker 时报 permission denied:完整排查清单

连接 Docker 报权限拒绝按此清单排查:用户在不在 docker 组、会话是否重登、~/.docker 属主是否被 sudo 污染、SELinux 是否拦截、是否该用 rootless。逐项排除即可解决。

如何从 Docker 容器内部获取宿主机的 IP 地址? cover
概念指南

如何从 Docker 容器内部获取宿主机的 IP 地址?

容器内获取宿主机 IP:用 host.docker.internal 域名(Mac/Win 内置,Linux 加 --add-host),或读默认网关 ip route | awk '/default/ {print $3}',即 …

进入 Docker 容器 Shell 的常用方法有哪些? cover
概念指南

进入 Docker 容器 Shell 的常用方法有哪些?

运行中的容器用 docker exec -it 容器名 bash/sh 进 shell;已停止的容器 commit 成镜像再跑;compose 用 docker compose exec 服务名 sh。

docker-compose 如何让服务 Y 等服务 X 就绪后再启动? cover
概念指南

docker-compose 如何让服务 Y 等服务 X 就绪后再启动?

depends_on 配 condition: service_healthy 可让 Y 等 X 通过健康检查后启动;X 需定义 healthcheck。只控制顺序不等就绪是旧版行为。本文给出完整配置示例。

Docker 中的持久化存储(如数据库数据)该怎么管理? cover
概念指南

Docker 中的持久化存储(如数据库数据)该怎么管理?

用 Docker volume 管理持久数据:docker volume create 创建,docker run -v 卷名:/容器路径 挂载,容器删了数据还在;备份可用临时容器打包。数据库类有状态服务必须挂卷。

如何向 Docker 容器传递环境变量? cover
概念指南

如何向 Docker 容器传递环境变量?

传环境变量给容器:docker run -e KEY=VALUE 逐个传、-e KEY 透传宿主变量、--env-file .env 批量传;compose 用 environment 或 env_file。本文含秘钥管理建议。