如何使用Docker compose从Docker容器访问主机上的sqlite文件?

如何使用Docker compose从Docker容器访问主机上的sqlite文件?,sqlite,docker,docker-compose,Sqlite,Docker,Docker Compose,我有 使用Docker compose在Docker中运行的Flask服务器 sqlite文件存储在主机上 我想使用sqlite文件的最新更改从docker映像访问sqlite文件。如果主机上有该文件,您只需使用-v选项将该文件装载到容器中即可。 容器对文件执行的更改将在主机上可见 快速概念验证: . ├── docker-compose.yml └── the-file docker-compose.yml文件: version: '3' services: the-flask:

我有

  • 使用Docker compose在Docker中运行的Flask服务器
  • sqlite文件存储在主机上

我想使用sqlite文件的最新更改从docker映像访问sqlite文件。

如果主机上有该文件,您只需使用
-v
选项将该文件装载到容器中即可。 容器对文件执行的更改将在主机上可见

快速概念验证:

.
├── docker-compose.yml
└── the-file
docker-compose.yml文件:

version: '3'
services:
  the-flask:
    image: python
    volumes:
      - ${PWD}/the-file:/mnt/the-file
    command: tail -f /dev/null
组合,获取容器ID,然后将容器中的一些文本附加到从主机装载的文件中:

docker-compose up -d 

docker exec <container-id> sh -c 'echo "Contend added from container" >> /mnt/the-file'
cat the-file 
Initial content
Contend added from container

不确定docker-compose.yml的外观。但是您可以通过装入卷来实现目标更正我的错误,我认为在创建映像时,按卷装入可以为您提供文件的“快照”,但不是最新版本。它将与您的本地DB文件持续同步