docker啟動mysql并映射數(shù)據(jù)目錄(含備份腳本)
下面是實現(xiàn) Docker MySQL 目錄映射的步驟,我們將通過一個表格展示:
步驟 | 操作 | 命令/代碼 | 說明 |
---|---|---|---|
1 | 創(chuàng)建數(shù)據(jù)目錄 | mkdir /path/to/mysql/data | 在宿主機(jī)上創(chuàng)建一個用于存儲 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 | 啟動一個 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 容器時,端口占用錯誤是開發(fā)和運維中常見且棘手的問題,本文將深入剖析該問題的成因,介紹如何通過查看端口分配,合理調(diào)整動態(tài)端口范圍,以及重啟網(wǎng)絡(luò)服務(wù)等實用技巧,有效解決 Windows Docker 端口占用錯誤,需要的朋友可以參考下2025-04-04