[英]Access file structure present in host with Docker
如果我想讓我的Docker映像直接從系統中存在的文件夾中獲取數據,那是可能的。
如果是,那我該怎么辦。
謝謝。
通常的做法是在運行時使用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"
如果使用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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.