Docker本地目錄掛載的實(shí)現(xiàn)步驟
1. 案例:MySQL容器的數(shù)據(jù)掛載
- 查看MySQL容器,判斷是否有數(shù)據(jù)卷掛載
- 基于宿主機(jī)目錄實(shí)現(xiàn)MySQL數(shù)據(jù)目錄、配置文件、初始化腳本的掛載
[root@172 _data]# docker inspect nginx
docker inspect nginx
是用來(lái)獲取關(guān)于 Docker 容器或鏡像配置和元數(shù)據(jù)的詳細(xì)信息的命令。
當(dāng)你運(yùn)行 docker inspect
命令時(shí),它將返回一個(gè) JSON 格式的輸出,其中包含有關(guān)指定容器或鏡像的各種信息,包括:名稱、ID、創(chuàng)建時(shí)間、網(wǎng)絡(luò)設(shè)置、掛載點(diǎn)、端口映射、環(huán)境變量、鏡像信息等等。
對(duì)于 docker inspect nginx
命令來(lái)說(shuō),它會(huì)返回有關(guān)名為 “nginx” 的容器的詳細(xì)信息。你可以使用這些信息來(lái)了解容器的配置、網(wǎng)絡(luò)設(shè)置、掛載點(diǎn)和其他相關(guān)的元數(shù)據(jù)。
掛載信息
查看數(shù)據(jù)卷
查看MySQL數(shù)據(jù)卷掛載在宿主機(jī)的位置,但是我們沒(méi)有設(shè)置數(shù)據(jù)卷,所以是亂碼
mysql的重要數(shù)據(jù)都在宿主機(jī)中
2. 將MySQL掛載到我們指定的目錄
MySQL會(huì)將數(shù)據(jù)存儲(chǔ)目錄掛載到宿主機(jī),但是MySQL會(huì)生成匿名卷,當(dāng)我們對(duì)MySQL進(jìn)行升級(jí)時(shí),會(huì)把原來(lái)的MySQL容器刪除,為了原來(lái)數(shù)據(jù)不丟失(當(dāng)然可以吧原來(lái)的數(shù)據(jù)遷移到新的升級(jí)版本后mysql的匿名卷),我們可以將容器目錄與宿主機(jī)指定目錄掛載。
# 掛載本地目錄 -v 本地目錄:容器內(nèi)目錄 # 掛載本地文件 -v 本地文件:容器內(nèi)文件
注意:本地目錄或文件必須以 / 或 ./開頭,如果直接以名字開頭,會(huì)被識(shí)別為數(shù)據(jù)卷名而非本地目錄名。
基于宿主機(jī)目錄實(shí)現(xiàn)MySQL數(shù)據(jù)目錄、配置文件、初始化腳本的掛載
# 1.刪除原來(lái)的MySQL容器 docker rm -f mysql # 2.進(jìn)入root目錄 cd ~ # 3.創(chuàng)建并運(yùn)行新mysql容器,掛載本地目錄 docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ -v ./mysql/data:/var/lib/mysql \ -v ./mysql/conf:/etc/mysql/conf.d \ -v ./mysql/init:/docker-entrypoint-initdb.d \ mysql # 4.查看root目錄,可以發(fā)現(xiàn)~/mysql/data目錄已經(jīng)自動(dòng)創(chuàng)建好了 ls -l mysql # 結(jié)果: 總用量 4 drwxr-xr-x. 2 root root 20 5月 19 15:11 conf drwxr-xr-x. 7 polkitd root 4096 5月 19 15:11 data drwxr-xr-x. 2 root root 23 5月 19 15:11 init # 查看data目錄,會(huì)發(fā)現(xiàn)里面有大量數(shù)據(jù)庫(kù)數(shù)據(jù),說(shuō)明數(shù)據(jù)庫(kù)完成了初始化 ls -l data # 5.查看MySQL容器內(nèi)數(shù)據(jù) # 5.1.進(jìn)入MySQL docker exec -it mysql mysql -uroot -p123 # 5.2.查看編碼表 show variables like "%char%"; # 5.3.結(jié)果,發(fā)現(xiàn)編碼是utf8mb4沒(méi)有問(wèn)題 +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8mb3 | | character_sets_dir | /usr/share/mysql-8.0/charsets/ | +--------------------------+--------------------------------+ # 6.查看數(shù)據(jù) # 6.1.查看數(shù)據(jù)庫(kù) show databases; # 結(jié)果,hmall是黑馬商城數(shù)據(jù)庫(kù) +--------------------+ | Database | +--------------------+ | hmall | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) # 6.2.切換到hmall數(shù)據(jù)庫(kù) use hmall; # 6.3.查看表 show tables; # 結(jié)果: +-----------------+ | Tables_in_hmall | +-----------------+ | address | | cart | | item | | order | | order_detail | | order_logistics | | pay_order | | user | +-----------------+ # 6.4.查看address表數(shù)據(jù) +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+ | id | user_id | province | city | town | mobile | street | contact | is_default | notes | +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+ | 59 | 1 | 北京 | 北京 | 朝陽(yáng)區(qū) | 13900112222 | 金燕龍辦公樓 | 李佳誠(chéng) | 0 | NULL | | 60 | 1 | 北京 | 北京 | 朝陽(yáng)區(qū) | 13700221122 | 修正大廈 | 李佳紅 | 0 | NULL | | 61 | 1 | 上海 | 上海 | 浦東新區(qū) | 13301212233 | 航頭鎮(zhèn)航頭路 | 李佳星 | 1 | NULL | | 63 | 1 | 廣東 | 佛山 | 永春 | 13301212233 | 永春武館 | 李曉龍 | 0 | NULL | +----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+ 4 rows in set (0.00 sec)
到此這篇關(guān)于Docker本地目錄掛載的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker本地目錄掛載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境
這篇文章主要介紹了一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07替換docker容器中的一個(gè)文件的實(shí)現(xiàn)
在某些情況下,我們可能確實(shí)需要更新容器內(nèi)的文件,本文主要介紹了替換docker容器中的一個(gè)文件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06Docker中鏡像構(gòu)建文件Dockerfile與相關(guān)命令的詳細(xì)介紹
這篇文章主要介紹了Docker中鏡像構(gòu)建文件Dockerfile與相關(guān)命令的相關(guān)資料,文中介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2017-02-02centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes)
這篇文章主要介紹了centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03利用 Docker 構(gòu)建簡(jiǎn)單的 java 開發(fā)編譯環(huán)境的方法詳解
這篇文章主要介紹了利用 Docker 構(gòu)建簡(jiǎn)單的 java 開發(fā)編譯環(huán)境的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Docker開放2375端口實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)的操作方法
因?yàn)镮DEA集成docker環(huán)境,實(shí)質(zhì)上是通過(guò)遠(yuǎn)程訪問(wèn)的形式,進(jìn)行連接,因此需要開啟Docker的2375端口的遠(yuǎn)程訪問(wèn)權(quán)限,這篇文章主要介紹了Docker開放2375端口實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)的操作方法,需要的朋友可以參考下2024-05-05Docker鏡像拉取報(bào)錯(cuò):Error response from daemon: 
這篇文章主要介紹了Docker鏡像拉取報(bào)錯(cuò):Error response from daemon: Get https://registry-1.docker.io/v2/的問(wèn)題解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07