可观测学堂

可观测问答

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

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

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

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

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

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

报 Is the docker daemon running 时先核对 context 与实际端点,再按 rootful、rootless、Desktop 或远程环境检查服务、API 连通与权限。

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 怎么修复?

先核对实际 context 和 socket;原生 Linux rootful 的组权限问题可加 docker 组并重新登录。

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

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

容器名在同一 Docker daemon 内唯一,报名称冲突时: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),或读取默认网关,但网关不保证是物理宿主机或 docker0 地址。本文给出各平台命令。…

进入 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。当前短格式 depends_on 仍只等启动,等待健康需长格式条件。本文给出完整配置示例。

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。本文含秘钥管理建议。