我是打算在阿里的轻量服务器上搭建一个code-server,用来自己测试一些简单的java代码。
有些代码依赖了第三方包,需要下载依赖,所以需要给code-server安装maven。
宿主机已经安装好了maven,挂载和环境变量也弄完了,然后在容器终端中执行mvn help:effective-settings,就会报下述的错误:

mvn构建报错,无法下载包。
执行 curl -I https://maven.aliyun.com/repository/public命令,发现
can't resolve maven.aliyun.com ,说明是DNS有问题。
原因:
是因为宿主机的域名服务器是阿里云内部地址,容器启动后的环境中继承使用了这个内部地址,所以当然是无法解析域名。所以需要修改docker的DNS配置,让所有容器都不要继承使用内部nameserver,而改用外部地址,如223.5.5.5和8.8.8.8
修改方式:

bash
"dns": [
"223.5.5.5",
"8.8.8.8"
],
"dns-search": []
然后重启docker
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
同时我也把轻量服务器的防火墙UDP53端口也打开了,AI说是DNS的端口

BTW:
下图是我docker-compose的配置文件,如果在这里加入的dns的配置,是无效的。因为我这里使用了外部网络,当你的external是为true的话,即使你写明了dns配置也是无效的,因为容器会使用外部网络自己的配置。
