在使用Docker的項(xiàng)目中,我們通常需要將數(shù)據(jù)庫文件(如MySQL)保存在宿主機(jī)上,在Docker容器啟動(dòng)或停止時(shí)掛載這些文件,以免數(shù)據(jù)丟失或重建數(shù)據(jù)庫。
下面是MySQL容器掛載外部文件夾的示例代碼:
docker run --name=my-mysql \ -v /opt/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -d mysql:tag
這個(gè)docker run命令使用了-v標(biāo)志,指定了掛載路徑/opt/mysql/data作為MySQL容器中/var/lib/mysql目錄的副本。這意味著MySQL數(shù)據(jù)將會(huì)保存在外部的/opt/mysql/data目錄。
需要注意的是,為了使MySQL容器能夠訪問外部文件夾,必須授予Docker進(jìn)程讀寫/opt/mysql/data目錄的權(quán)限。
這樣,在MySQL容器啟動(dòng)和停止時(shí),數(shù)據(jù)將得到保護(hù),甚至可以將容器刪除并重新啟動(dòng),它仍然將使用宿主機(jī)文件夾中的數(shù)據(jù)。