如果我希望我的泊坞窗图像直接从我系统中存在的文件夹中获取数据,那是可能的。
如果是,那我该怎么做呢。
感谢。
答案 0 :(得分:3)
通常的做法是在运行时使用 docker volume ( bind mount )。
docker run -d \
-it \
--name devtest \
--mount type=bind,source="$(pwd)"/target,target=/app \
nginx:latest
这样,您的容器/app
内有权访问您的主机路径(此处为$pwd/target
)
在docker-compose文件中,请参阅docker compose volume synta x:
此示例显示:
- Web服务使用的命名卷(
mydata
)- 和为单个服务定义的绑定装载(
db
服务卷下的第一个路径)。
version: "3.2"
services:
web:
image: nginx:alpine
volumes:
- type: volume
source: mydata
target: /data
volume:
nocopy: true
- type: bind
source: ./static
target: /opt/app/static
db:
image: postgres:latest
volumes:
- "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
- "dbdata:/var/lib/postgresql/data"
volumes:
mydata:
dbdata:
在您的情况下,请使用:
- "/path/to/local/folder/on/host:/path/within/your/container"
答案 1 :(得分:1)
如果您使用docker-compose,则可以定义volumes
以共享系统中的文件夹。在下面的示例中,mysql将使用./data/db/mysql
文件夹来存储/读取数据(因为默认情况下它在linux中使用/var/lib/mysql
。)
此外,您必须确保提供的卷具有正确的权限,并且docker具有对它的读/写访问权限。
version: "3"
services:
nginx:
......
php:
........
mysql:
.........
volumes:
- "./data/db/mysql:/var/lib/mysql"