可观测学堂

可观测问答

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

如何用新终端(TTY)进入已经在运行的 Docker 容器? cover
概念指南

如何用新终端(TTY)进入已经在运行的 Docker 容器?

docker exec -it 容器名 sh(或 bash)为运行中的容器开一个新终端会话;退出用 exit,不影响主进程。本文说明参数含义与无 shell 镜像的替代方案。

如何在 docker-compose 中执行多条命令? cover
概念指南

如何在 docker-compose 中执行多条命令?

command 字段用 sh -c "cmd1 && cmd2 && cmd3" 串多条命令,YAML 用 > 折叠多行书写;更规范的做法是把初始化逻辑放 entrypoint 脚本。本文给出写法与注意事项。

Docker 容器如何同时暴露多个端口? cover
概念指南

Docker 容器如何同时暴露多个端口?

重复写 -p 参数即可映射多个端口:docker run -p 80:80 -p 443:443 镜像;也可映射端口范围或绑定特定网卡 IP。compose 里 ports 是列表。注意容器内应用要真的监听这些端口。

运行中的 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。