簡體   English   中英

Docker for Windows - 掛載目錄為空

[英]Docker for Windows - Mount directory is coming empty

我有一個安裝了 MYSQL 的圖像。 我需要將 /var/lib/mysql 目錄映射到我的主機系統。 以下是我在該目錄中看到的屏幕截圖,當我使用以下命令時

docker run --rm -it --env-file=envProxy --network mynetwork --name my_db_dev -p 3306:3306 my_db /bin/bash

未從同一鏡像掛載的 Docker 容器的屏幕截圖

現在,當我嘗試從我的主機(Windows 10)掛載一個目錄時,通過從同一個映像運行另一個容器,mysql 目錄是空白的。

docker run --rm -it --env-file=envProxy --network mynetwork -v D:/docker/data:/var/lib/mysql --name my_db_dev1 -p 3306:3306 my_db /bin/bash

也試過這個,但沒有奏效

docker run --rm -it --env-file=envProxy --network mynetwork -v D:\docker\data:/var/lib/mysql --name my_db_dev1 -p 3306:3306 my_db /bin/bash

在此處輸入圖像描述

我看到的一件事是,路徑中的 mysql 目錄現在具有 root 用戶,而不是之前的情況下的 mysql。

我希望將現有容器(mysql目錄)中的所有內容復制回主機掛載目錄

那可能嗎 ? 以及如何實現?

Docker Desktop(2.0.0.3(31259))上存在相同問題。 我將從這個問題中得到解決方案。

我確保容器已停止,打開了docker設置,選擇了“ Shared Drives”,刪除了“ C”上的勾號並再次添加了它。 Docker要求提供Windows帳戶憑據,我輸入了新的憑據。 之后,啟動容器,安裝卷就可以了。 問題解決了。

只需重置Docker Settings中的憑據, 可以更簡單地解決問題。

如果您需要將文件容器中獲取到主機中,最好使用docker cp命令: https : //docs.docker.com/engine/reference/commandline/cp/

它看起來像: docker cp my_db_dev1:/var/lib/mysql d:\\docker\\data

UPD

實際上,我想在其他容器之間保留數據庫文件,所以我想使用卷

在這種情況下,您必須:

  1. 開始使用docker-compose協調容器。

  2. docker-compose.yml ,創建卷,該卷在所有容器之間共享。 就像是:

泊塢窗,compose.yml

version: '3'
services:
  db1:
    image: whatever
  volumes:
    - myvol:/data

  db2:
    image: whatever2
  volumes:
    - myvol:/data

volumes:
  myvol:  

描述: https//docs.docker.com/compose/compose-file/#volume-configuration-reference

使用Windows路徑寫反斜杠“ \\”,建議使用變量指定路徑。 在Linux的另一端,使用斜杠“ /”,例如:

docker run -it -v %userprofile%\work\myproj\some-data:/var/data

嘗試關閉防病毒程序或防火牆。 然后單擊設置/共享驅動器下的“重置憑據”。 那對我有用。

最好的祝福。

首先創建一個如下所示的文件夾結構,

C:\用戶\rajit\MYSQL_DATA\MYSQL_CONFIG

C:\用戶\rajit\MYSQL_DATA\DATA_DIR

然后請像下面這樣調整,

docker pull mysql:8.0
docker run --name mysql-docker -v C:\Users\rajit\MYSQL_DATA\MYSQL_CONFIG:/etc/mysql/conf.d --env="MYSQL_ROOT_PASSWORD=root" --env="MYSQL_PASSWORD=root" --env="MYSQL_DATABASE=test_db" -v C:\Users\rajit\MYSQL_DATA\DATA_DIR:/var/lib/mysql -d -p 3306:3306 mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM