使用 docker 的过程中遇到的问题汇总
提醒:本文最后更新于 4 年前
,文中所描述的信息可能已发生改变,请谨慎使用。
[问题零] alpine linux 安装软件
安装包时,不留下 cache,减少镜像体积。
RUN apk --no-cache add bash vim
参考资料:https://github.com/gliderlabs/docker-alpine/blob/master/docs/usage.md#disabling-cache
[问题一] x509: failed to load system roots and no roots provided
成因,alpine 里面缺失 root ca,导致访问第三方 ssl 的服务时,无法处理。安装对应的 ca 证书即可。
RUN apk upgrade && apk add --no-cache ca-certificates
参考资料:
golang/go#6391
zenazn/goji#126 (comment)
[问题二]容器内请求宿主机的接口
host.docker.internal
使用该 host ,该 host 指向了宿主机的 IP。
参考资料:https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds
[问题三]Mac OS X 环境下 docker 时间漂移问题
每次休眠唤醒之后,docker 容器内的时间会和宿主机时间不一致,具体原因未知,具体解决方案位置。
目前本人尝试的方法是重启 docker daemon 服务。
参考资料:
docker/for-mac#2076
docker/for-mac#17
[问题四]docker 容器网络故障
不知道啥原因,docker 容器无法访问内网部分地址,通过重置整个docker daemon 后恢复。后来发现可以通过 docker network ls
命令去管理已创建的网络,删除重建。