在使用docker run 運行鏡像獲取容器時,有些容器會自動產生一些數據,為了這些數據會因為container (容器)的消失而消失,保證數據的安全,比如mysql 容器在運行中產生的一些表的數據,有一天我如果使用docker rm 將容器刪除那么數據就丟失了。為了這個原因就就的將容器中的目錄掛載到宿主機,以保證數據的安全
首先在docker hub中pull mysql 鏡像
其次創建mysql持久化文件目錄:通常只需要data 和conf
啟動容器
docker run -itd --name mysql5.7 -p 3306:3306 --mount type=bind,src=/usr/local/src/data,dst=/var/lib/mysql --mount type=bind,src=/usr/local/src/conf,dst=/etc/mysql/conf.d --mount type=bind,src=/usr/local/src/logs,dst=/var/log --privileged=true -e MYSQL_ROOT_PASSWORD=admin123 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode-ci
--name :設置啟動容器的名字
--mount 綁定數據目錄和服務器配置文件
-p 端口映射 格式為: 宿主機端口:容器端口
-e MYSQL_ROOT_PASSWORD 設置數據庫密碼
--chaeacter-set-server 設置編碼
--collation-server 設置編碼
--privileged=true:容器內的root擁有真正root權限,否則容器內root只是外部普通用戶權限
檢查配置信息docker inspect xxx
在輸出的json格式中找到
mounts 簡直查看source 和 target 的值是否為mount 綁定的目錄
啟動8.0 目錄掛載
docker run -p 3307:3306 -v /opt/mysql8/conf:/etc/mysql/conf.d -v /opt/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin123 --name mysql8 -d mysql:8.0