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)說,它會(huì)返回有關(guān)名為 “nginx” 的容器的詳細(xì)信息。你可以使用這些信息來(lái)了解容器的配置、網(wǎng)絡(luò)設(shè)置、掛載點(diǎn)和其他相關(guān)的元數(shù)據(jù)。
掛載信息

查看數(shù)據(jù)卷

查看MySQL數(shù)據(jù)卷掛載在宿主機(jī)的位置,但是我們沒有設(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ù),說明數(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沒有問題 +--------------------------+--------------------------------+ | 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)文章
如何讓docker中的mysql啟動(dòng)時(shí)自動(dòng)執(zhí)行sql語(yǔ)句
這篇文章主要介紹了讓docker中的mysql啟動(dòng)時(shí)自動(dòng)執(zhí)行sql的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
docker的harbor倉(cāng)庫(kù)登錄問題小結(jié)
在使用Docker?Harbor時(shí),可能會(huì)因?yàn)樽C書信任問題或DNS解析問題導(dǎo)致登錄失敗,解決方法包括將自簽名證書添加到系統(tǒng)的可信證書存儲(chǔ)中,本文給大家介紹docker的harbor倉(cāng)庫(kù)登錄問題,感興趣的朋友一起看看吧2024-09-09
Docker File創(chuàng)建鏡像失敗ERROR [3/4] RUN yum&nbs
文章描述了在使用DockerFile創(chuàng)建基于CentOS Linux 8的鏡像時(shí)遇到的問題,即無(wú)法下載vim軟件包的元數(shù)據(jù),問題的原因是CentOS Linux 8的AppStream倉(cāng)庫(kù)沒有可用的URL,為了解決這個(gè)問題,作者建議將CentOS版本修改為7,因?yàn)镃entOS Linux 7的AppStream倉(cāng)庫(kù)通常有可用的URL2024-11-11
Docker自定義鏡像上傳至阿里云的實(shí)現(xiàn)
本文主要介紹了Docker自定義鏡像上傳至阿里云的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04
Docker安裝MySQL8.0的詳細(xì)步驟(附圖文!)
Windows上安裝MySQL相對(duì)來(lái)說會(huì)較為簡(jiǎn)單,但是在Docker安裝就沒那么簡(jiǎn)單了,下面這篇文章主要給大家介紹了關(guān)于Docker安裝MySQL8.0的詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
從Docker容器中備份整個(gè)PostgreSQL的操作步驟
現(xiàn)在需要從Docker容器中備份整個(gè)PostgreSQL后,然后,使用備份文件在另外一個(gè)pg的docker容器中恢復(fù)過來(lái),所以本文給大家介紹了從Docker容器中備份整個(gè)PostgreSQL的操作步驟,通過代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-10-10
Docker中控制服務(wù)啟動(dòng)順序的操作方法
Docker是一種開源的應(yīng)用容器引擎,允許開發(fā)者將應(yīng)用及其依賴打包進(jìn)容器,實(shí)現(xiàn)快速、一致的部署,Docker三劍客compose、machine和swarm提供了不同層面的服務(wù)管理和編排,使得在不同環(huán)境中部署應(yīng)用變得簡(jiǎn)單高效2024-10-10
docker容器連接宿主機(jī)redis與mysql的配置方法
最近有朋友在工作時(shí)遇到一個(gè)問題,docker容器無(wú)法訪問宿主機(jī)的redis,所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于docker容器連接宿主機(jī)redis與mysql的配置方法,需要的朋友可以參考下2023-06-06

