Docker的外部映射目錄是將宿主機上的目錄與Docker容器內的目錄綁定在一起,以實現容器內的文件存儲與宿主機文件系統的共享。這樣做的好處在于容器可以在運行時訪問宿主機上的文件,以及能夠在容器重啟后保持數據的持久性。
在Docker命令行中,可以使用-v(volume)參數來進行外部映射目錄配置。例如,使用以下命令將宿主機的/data目錄映射到容器內的/mydata目錄:
docker run -v /data:/mydata your_image
上述命令會將宿主機上的/data目錄與容器內的/mydata目錄綁定在一起。在容器內部,如果需要訪問宿主機上的/data目錄,可以通過/mydata路徑進行訪問。
可以使用多個-v參數來映射多個目錄,例如以下命令將宿主機/data目錄與容器內/mydata目錄,以及宿主機/logs目錄與容器內/logs目錄進行映射:
docker run -v /data:/mydata -v /logs:/logs your_image
如果需要在容器內部訪問宿主機上的目錄且該目錄不存在,則可以使用以下命令在容器內部創建該目錄:
docker run -v /data:/mydata -v /logs:/logs -w /mydata your_image mkdir new_directory
上述命令將容器的工作目錄(默認為/)改為/mydata,并在/mydata目錄下創建了new_directory。
需要注意的是,外部映射目錄的權限問題。如果宿主機上的目錄權限不正確,可能會導致容器無法訪問映射的目錄。可以使用以下命令修改宿主機上的目錄權限:
sudo chmod 777 /data
上述命令將宿主機上的/data目錄權限改為777,容器應該能夠正確地訪問該目錄了。