使用 docker-compose up 运行了,结果 docker ps 查看,某个服务没有端口映射,导致无法连接上:
遇到这种问题,是因为自己在 docker-compose.yml 文件里面,定义了这个不展示端口的服务的某个目录到外部,而这个服务的这个目录,里面是有启动这个服务需要的文件的,而外部这个目录是空的,一旦做了这种映射,会以外部的为准,就清空了内部的该目录,导致该容器无法启动,去掉这样的映射,就可以了。
如果想定义这种外部和内部的映射,又不希望外部覆盖内部的,那就不能用这种绝对路径的数据卷映射方式,得用另一种,叫做“命名卷”的映射,没错,数据卷还有分命名卷,就是采用如下的写法,就不会外部覆盖内部的
但是这种方式呢,就会导致不知道外部数据到底存放在哪里,所以也有点蛋疼,不过还是可以通过 docker inspect xxxx 查看容器挂载目录看具体数据在哪里,一般是在 /var/lib/docker/volumes/ 这样的目录下找找会有