docker啟動mysql并映射數(shù)據(jù)目錄(含備份腳本)
下面是實(shí)現(xiàn) Docker MySQL 目錄映射的步驟,我們將通過一個(gè)表格展示:
| 步驟 | 操作 | 命令/代碼 | 說明 |
|---|---|---|---|
| 1 | 創(chuàng)建數(shù)據(jù)目錄 | mkdir /path/to/mysql/data | 在宿主機(jī)上創(chuàng)建一個(gè)用于存儲 MySQL 數(shù)據(jù)的目錄 |
| 2 | 啟動 MySQL 容器 | docker run --name mysql -v /path/to/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql:tag | 啟動一個(gè) MySQL 容器,并將宿主機(jī)的數(shù)據(jù)目錄映射到容器內(nèi)的 /var/lib/mysql 目錄 |
| 3 | 進(jìn)入 MySQL 容器 | docker exec -it mysql bash | 進(jìn)入 MySQL 容器的命令行界面 |
| 4 | 連接 MySQL 數(shù)據(jù)庫 | mysql -u root -p | 使用 root 用戶連接到 MySQL 數(shù)據(jù)庫 |
接下來我們將逐步介紹每一步需要做什么,以及相應(yīng)的命令和代碼。
一、在docker里跑mysql 5.7
docker run -p 13306:3306 --name mysql --restart=always --privileged=true \ -v /data/docker/mysql/log:/var/log/mysql \ -v /data/docker/mysql/data:/var/lib/mysql \ -v /data/docker/mysql/conf:/etc/mysql/conf.d \ -v /etc/localtime:/etc/localtime:ro \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7
注釋:
-- name mysql:指定docker容器名叫mysql,當(dāng)然你可以改成其他的
--restart=always:總是跟隨docker啟動
--privileged=true:獲取宿主機(jī)root權(quán)限
-v dir_1:dir_2:dir_1指的是宿主機(jī)的目錄,可以不存在,docker會自動創(chuàng)建,dir_2位容器里面的目錄,必須存在,否則容器無法啟動
-e MYSQL_ROOT_PASSWORD=123456:指定mysql環(huán)境變量,root用戶的密碼為123456
二、登錄容器后再登錄容器里的mysql
[root@localhost mysql_data_backup]# docker exec -it mysql /bin/bash bash-4.2# mysql -uroot -p123456
三、在容器數(shù)據(jù)庫里創(chuàng)建數(shù)據(jù)庫和表
CREATE DATABASE IF NOT EXISTS kahnDB DEFAULT CHARSET utf8 COLLATE utf8_general_ci; use kahnDB; create table student(num int(10) not null unique primary key,name varchar(20) not null,gender varchar(20) not null,birthday datetime,address varchar(50)); insert into student (num,name,gender,birthday,address) VALUES (1,'serena','woman','2000-12-31','shanghai'); insert into student (num,name,gender,birthday,address) VALUES (2,'kahn','nan','2000-01-29','huaian');
四、備份容器中的mysql數(shù)據(jù)庫
#!/usr/bin/env bash
docker_name="mysql"
backup_dir="/data/docker/mysql/mysql_data_backup"
db_name="kahnDB"
db_password="123456"
xtime=`date +%Y-%m-%d_%H:%M:%S_%5N`
docker exec -i ${docker_name} mysqldump -uroot -p${db_password} ${db_name} > ${backup_dir}/${db_name}_${xtime}.sql到此這篇關(guān)于docker啟動mysql并映射數(shù)據(jù)目錄(含備份腳本)的文章就介紹到這了,更多相關(guān)docker mysql映射目錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows Docker端口占用錯誤及解決方案總結(jié)
在 Windows 環(huán)境下使用 Docker 容器時(shí),端口占用錯誤是開發(fā)和運(yùn)維中常見且棘手的問題,本文將深入剖析該問題的成因,介紹如何通過查看端口分配,合理調(diào)整動態(tài)端口范圍,以及重啟網(wǎng)絡(luò)服務(wù)等實(shí)用技巧,有效解決 Windows Docker 端口占用錯誤,需要的朋友可以參考下2025-04-04
Docker?部署?vue?項(xiàng)目的詳細(xì)流程
使用Docker配合Nginx部署Vue3項(xiàng)目涉及多個(gè)步驟:首先安裝Nginx,然后創(chuàng)建掛載目錄及配置文件;接著打包Vue項(xiàng)目并上傳至服務(wù)器;最后創(chuàng)建Dockerfile,構(gòu)建鏡像并啟動容器,部署完成后,通過IP訪問應(yīng)用以驗(yàn)證是否成功2024-09-09
Docker 常用命令整理及使用注意事項(xiàng)總結(jié)
這篇文章主要介紹了Docker 常用命令整理及使用注意事項(xiàng)總結(jié)的相關(guān)資料,這里整理了Docker 的常用命令,說明這些命令是什么意思及使用方法,需要的朋友可以參考下2016-12-12
使用Docker時(shí)內(nèi)存占用過高的解決方案
在使用 Docker 進(jìn)行容器化部署時(shí),內(nèi)存占用過高是一個(gè)常見問題,當(dāng)服務(wù)器內(nèi)存被耗盡時(shí),會導(dǎo)致系統(tǒng)性能下降,甚至可能導(dǎo)致服務(wù)宕機(jī),本文將介紹如何排查和解決 Docker 環(huán)境下的內(nèi)存占用問題,需要的朋友可以參考下2024-12-12

