Linux 第一次启动时的Docker卷

Linux 第一次启动时的Docker卷,linux,docker,devops,Linux,Docker,Devops,我正在使用docker compose来启动docker。我有一个映像,里面有默认的配置,但是我想根据默认的卷提供我自己的配置。所以我需要得到一个默认值,并且能够更改它。当我编写这样的卷时:volumes:-config.json:/etc/config.json它将在主机上创建一个文件夹config.json。如何配置?当我的config.json文件与docker compose文件位于同一文件夹中时,我会这样做。 卷数: -${PWD}/config.json:/etc/config.j

我正在使用docker compose来启动docker。我有一个映像,里面有默认的配置,但是我想根据默认的卷提供我自己的配置。所以我需要得到一个默认值,并且能够更改它。当我编写这样的卷时:
volumes:-config.json:/etc/config.json
它将在主机上创建一个文件夹
config.json
。如何配置?

当我的config.json文件与docker compose文件位于同一文件夹中时,我会这样做。

卷数:
-${PWD}/config.json:/etc/config.json

我注意到如果我使用./config.json,它将创建一个名为config.json的文件夹,因此我使用${PWD}。

在第一次运行时,从etc文件夹获取默认配置。您可以装载整个etc文件夹。因此,etc文件夹中的所有文件都将在本地计算机中可用

volumes:
      - ./localetc:/etc
现在,将在当前目录中创建一个名为
localetc
的新文件夹

然后
cd localetc&&ls-la
。现在您可以看到您的
config.json
文件了


您可以使用自定义配置编辑您的
config.json
,并通过发出
docker compose restart

重新启动容器,但localetc不会是空文件夹吗?Docker创建空文件夹如果不存在,Docker将创建文件夹,如果本地计算机中不存在,但当您装入文件夹(不是文件)时。该容器文件夹中的所有文件都将在新创建的
localetc
文件夹中可用。在上述场景中,
etc
目录中的所有文件都将在
localetc
folder中可用(谢谢尝试)为什么该卷会创建文件夹
setup.sh
setup.sh
是一个文件,在启动容器之前,您应该将该文件放在grafana目录中。如果您没有名为
setup.sh
的文件,那么当您启动容器时,它将创建一个文件夹。这对我很有用,谢谢。但是如何从容器中获取默认配置?如果它是从容器中创建的,那么您可以从文件夹-/etc/folder:/etc/folder/(容器中)而不是文件中创建卷,这样您就可以将其保存在host.created文件夹中。并获得错误:
错误:for grafana无法启动服务grafana:OCI运行时创建失败:容器\u linux。go:348:启动容器进程导致“exec:\”/setup.sh\”:权限被拒绝:未知
错误:在启动项目时遇到错误。