
如何从宿主机获取 Docker 容器的 IP 地址?
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名 即可拿到容器 IP;容器在哪个网络就有哪个网段的 IP。
聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名 即可拿到容器 IP;容器在哪个网络就有哪个网段的 IP。

Dockerfile 用 # 开头写注释,独占一行,不支持行尾注释;指令参数里的 # 不算注释。另可用 parser directive 指定语法版本。本文说明规则与常见坑。

cron 守护进程不读取容器启动时的环境变量,常见解法:启动脚本把 env 导出到文件(env > /etc/environment)让 cron 源它,或用 docker run -e 显式传入。本文给出可靠做法。

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

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

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

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

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

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

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

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

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