可观测学堂

可观测问答

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

如何从 Docker 容器内部访问宿主机上的端口? cover
概念指南

如何从 Docker 容器内部访问宿主机上的端口?

容器内访问宿主机服务,用特殊域名 host.docker.internal:端口(Linux 需 --add-host host.docker.internal:host-gateway),或宿主机内网 IP;宿主机服务要监听 0.…

如何给已经在运行的 Docker 容器添加数据卷? cover
概念指南

如何给已经在运行的 Docker 容器添加数据卷?

Docker 不支持给运行中的容器直接加卷,只能基于原配置重建容器并加 -v 挂载。本文给出 docker commit 保留改动、compose 改文件重建等平滑迁移方法。

如何给已存在的 Docker 容器添加端口映射? cover
概念指南

如何给已存在的 Docker 容器添加端口映射?

端口映射只能在创建容器时指定,运行中的容器无法直接添加 -p 映射;标准做法是停掉原容器、用相同配置加新端口重建。本文给出完整迁移步骤与替代方案。

如何 attach(接入)和 detach(脱离)Docker 容器的进程? cover
概念指南

如何 attach(接入)和 detach(脱离)Docker 容器的进程?

docker attach 容器名 把终端接到容器主进程的 stdin/stdout;退出而不停止容器按 Ctrl+P Ctrl+Q;按 Ctrl+C 会发 SIGINT 可能停掉进程。本文讲清与 exec 的区别。

Docker 中如何修改镜像名(仓库名)或容器名? cover
概念指南

Docker 中如何修改镜像名(仓库名)或容器名?

镜像改名用 docker tag 旧名 新名(加别名,再 docker rmi 旧名删除别名);容器改名用 docker rename。本文说明名称与 ID 的关系及常见操作。

从容器内连接宿主机服务:几种方式详解与排错 cover
概念指南

从容器内连接宿主机服务:几种方式详解与排错

容器访问宿主机服务的三种方式:host.docker.internal 域名、docker0 网桥 IP(Linux)、host 网络模式;连接不通时按监听地址、防火墙、DNS 解析三步排查。

如何从容器外部连接 Docker 里运行的 PostgreSQL? cover
概念指南

如何从容器外部连接 Docker 里运行的 PostgreSQL?

启动容器时用 -p 5432:5432 映射端口并设 POSTGRES_PASSWORD,外部用 psql -h 宿主机 -p 5432 -U 用户 连接;注意认证配置与数据卷持久化。本文给出完整步骤。

Docker 构建(docker build)失败时如何调试? cover
概念指南

Docker 构建(docker build)失败时如何调试?

调试构建失败五步走:读报错定位失败层、用 --progress=plain 看完整输出、--no-cache 排除缓存干扰、复用最后成功的层起临时容器手动执行、检查 .dockerignore 与上下文。本文详解每一步。

如何从 Docker 容器脱离(detach)而不停止它? cover
概念指南

如何从 Docker 容器脱离(detach)而不停止它?

attached 模式下按 Ctrl+P 然后 Ctrl+Q 即可脱离容器且保持运行;Ctrl+C 会把信号发给主进程导致容器停止。日常建议用 -d 后台运行 + docker logs/exec 查看。

如何用新终端(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 是列表。注意容器内应用要真的监听这些端口。