Linux

將新卷掛載到 docker 實例中

  • August 21, 2018

我有一個在 docker 實例中執行的網站。該站點有一個需要更多儲存空間的文件文件夾。因此,我在 AWS 上創建了一個新卷。我可以從主機上看到它lsblk,如下所示:

$ sudo lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0  20G  0 disk

在網站結構中,在 docker 容器內,我想將磁碟掛載到:

/var/www/localhost/htdocs/sites/default/documents/

通常,我只會使用以下內容:

sudo mount /dev/xvdf /var/www/localhost/htdocs/sites/default/documents/

但由於它在一個 docker 容器中,我對如何連接它有點困惑。 如何將驅動器安裝到給定目錄?

Docker 對我來說很新。直到幾週前我才聽說過。我可以控制sh進入容器並重新啟動它。

查看這個問題以獲取有關 Docker 中不同掛載類型的更多資訊:在 Docker容器中創建卷或掛載有什麼區別?

您需要先將捲掛載到“主機”伺服器上的本地文件夾,然後才能將其掛載到 docker 容器。

首先將設備掛載到目錄:

sudo mount /dev/xvdf /mnt

然後你必須用參數啟動容器,它將你的捲(目錄)連接到容器目錄:

docker run -d \
--name devtest \
-v /mnt:/var/www/localhost/htdocs/sites/default/documents \
nginx:latest

https://docs.docker.com/storage/bind-mounts/#start-a-container-with-a-bind-mount

或者使用 docker-compose.yml:

devtest:
 image: nginx:latest
 volumes:
   - /mnt:/var/www/localhost/htdocs/sites/default/documents

引用自:https://serverfault.com/questions/926661