背景
最近有项目中要用到nacos,因此就打算在本地先装个nacos玩玩。怎么装呢?当然使用docker了。既方便又简单。说实话自从装了docker之后,我这用了3年时间的ThinkPad着实有点卡。因此也有好长时间没运行过docker了。如果你还不会在windows下安装docker,请看以下两篇文章:
-
windows下安装运行docker
-
windows安装mysql
问题
当我启动docker后,打开cmd窗口,输入docker images。奇怪的事情发生了,
没有任何镜像,这不应该啊。以前pull过两个镜像,一个是hello-world,另一个是mysql:8.0。
可能是镜像路径错了,打开原来的文章,看了看配置,
然后根据以前设置的settings修改。
重启后镜像回来了。
然后一顿操作,nacos装好了,完事。
第二天继续打开docker,运行我的nacos,准备继续研究一波nacos。
怪事请!我的mysql 和 nacos 的镜像又没了,只剩下一个hello-world。
继续打开settings->daemon,发现没什么变化,配置文件也都跟昨天的一样。
解决
仔细看了看,发现experimental这个参数的值变成false了。
难道是这个参数的问题?改成true试试。
你还别说,真的成功了。镜像又回来了。
什么情况?
网上搜了一下午也没找到相关的资料。
只能去官网查看一波了。
https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
在上面找到了一段描述:
The
--metrics-addr
option takes a tcp address to serve the metrics API. This feature is still experimental, therefore, the daemon must be running in experimental mode for this feature to work.
意思大概是说:--metrics-addr需要一个tcp地址来运行metrics API。 此功能仍处于试验阶段,因此,the daemon必须在试验模式下运行才能起作用。
关于这个--metrics-addr也有一段相关解释:
To serve the metrics API on localhost:9323 you would specify --metrics-addr 127.0.0.1:9323, allowing you to make requests on the API at 127.0.0.1:9323/metrics to receive metrics in the prometheus format.
我觉得应该是docker容器内的镜像启动后默认使用localhost去访问的,如果你想使用ip去访问,则需要使用这个--metrics-addr。
一般情况下,我们肯定不仅仅是在本地使用localhost去访问服务的,而是在其他地方使用ip来访问这个服务。
docker研究尚浅,仅可做为参考,如果有研究过docker的大佬,可以留言交流。