一.為什么有掛載?
容器中運行的應用,有可能會產(chǎn)生數(shù)據(jù),如果將數(shù)據(jù)直接存儲到容器中,如果刪除容器時,容器中的數(shù)據(jù)會一起被刪除,例如:
如果運行的是數(shù)據(jù)庫容器,數(shù)據(jù)庫容器直接保存的數(shù)據(jù)文件,刪除容器時,容易導致數(shù)據(jù)丟失
為了防止數(shù)據(jù)丟失,可以把數(shù)據(jù)保存到宿主機上,這樣有便于容器之間的數(shù)據(jù)共享
二.掛載方式: 單個文件 文件夾 數(shù)據(jù)卷
1.單個文件
命令如下:
docker run -d --name cat4 \
--restart = always \
-v ~/server.xml:/usr/local/tomcat/conf/server.xml \
tomcat:8
這段代碼一共完成了:
1.創(chuàng)建了一個新的容器,運行的是tomcat8,當宿主機重啟時,會自動啟動該容器,給容器命名為cat4,方便輸入查看日志命令,-d為后臺運行
2.用文件掛載的方式,將宿主機的server.xml文件掛載到容器的/usr/local/tomcat/conf/server.xml文件,可以理解為/usr/local/tomcat/conf/server.xml相當于一個快捷方式
可通過命令:docker inspect cat4 查看容器詳情
2.文件夾
命令如下:
docker run -d --name mysql \?
-v /data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mariadb文章來源:http://www.zghlxwxcb.cn/news/detail-816972.html
這段代碼一共完成了:
1.創(chuàng)建了一個新容器,運行mariadb,命名為mysql,將文件夾的掛載方式,將宿主機的/data/mysql文件夾掛載到容器的/var/lib/mysql路徑中,-v會自動創(chuàng)建宿主機文件夾,-e配置環(huán)境變量
2.其中/var/lib/mysql和MYSQL_ROOT_PASSWORD=root視鏡像源而定
創(chuàng)建完成之后,同樣可以運行docker inspect mysql 查看容器詳情
此外,還可以運行命令: ll /data/mysql 查看掛載源文件,此時是有數(shù)據(jù)的
?還可以運行命令: docker rm -f mysql 刪除容器
刪除容器后繼續(xù)運行命令: ll /data/mysql,結(jié)果是一致的,因為文件是存在宿主機上的
3.數(shù)據(jù)卷
數(shù)據(jù)卷的本質(zhì)上還是文件夾,docker可以自動指定一個掛載文件夾,但是路徑比較深,而且還慘雜隨機字符,所以可以創(chuàng)建一個數(shù)據(jù)卷,同時給其取一個別名,在使用路徑時,就可以用別名表示完整文件夾路徑,命令如下:
docker volume create my-vol? 創(chuàng)建數(shù)據(jù)卷,名稱為my-vol?
docker volume ls 查看數(shù)據(jù)卷列表
docker inspect my-vol 查看數(shù)據(jù)卷詳情,其中"/var/lib/docker/volumes/my-vol/_data"為存儲數(shù)據(jù)的真實目錄
?準備好數(shù)據(jù)卷后,創(chuàng)建容器,與掛載文件夾的方式類似
docker run -d --name mysql1\
-v my-vol:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mariadb
手動指定my-vol掛載到/var/lib/mysql路徑,刪除容器時,數(shù)據(jù)卷不會刪除,如需刪除容器時連同數(shù)據(jù)卷一起刪除,可以在刪除命令后加 --volumes,如:docker rm -f mysql --volumes
如果沒有手動指定掛載,會自動新建數(shù)據(jù)卷掛載,如下代碼
docker run -d --name mysql2\
-e MYSQL_ROOT_PASSWORD=root \
mariadb
同樣可以通過命令docker volume ls 查看數(shù)據(jù)卷列表,其指定的掛載文件夾路勁很復雜文章來源地址http://www.zghlxwxcb.cn/news/detail-816972.html
到了這里,關(guān)于Docker 實現(xiàn)掛載的三種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!