docker啟動(dòng)mysql并映射數(shù)據(jù)目錄(含備份腳本)
下面是實(shí)現(xiàn) Docker MySQL 目錄映射的步驟,我們將通過(guò)一個(gè)表格展示:
步驟 | 操作 | 命令/代碼 | 說(shuō)明 |
---|---|---|---|
1 | 創(chuàng)建數(shù)據(jù)目錄 | mkdir /path/to/mysql/data | 在宿主機(jī)上創(chuàng)建一個(gè)用于存儲(chǔ) MySQL 數(shù)據(jù)的目錄 |
2 | 啟動(dòng) MySQL 容器 | docker run --name mysql -v /path/to/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql:tag | 啟動(dòng)一個(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ù)庫(kù) | mysql -u root -p | 使用 root 用戶連接到 MySQL 數(shù)據(jù)庫(kù) |
接下來(lái)我們將逐步介紹每一步需要做什么,以及相應(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啟動(dòng)
--privileged=true:獲取宿主機(jī)root權(quán)限
-v dir_1:dir_2:dir_1指的是宿主機(jī)的目錄,可以不存在,docker會(huì)自動(dòng)創(chuàng)建,dir_2位容器里面的目錄,必須存在,否則容器無(wú)法啟動(dòng)
-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ù)庫(kù)里創(chuàng)建數(shù)據(jù)庫(kù)和表
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ù)庫(kù)
#!/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啟動(dòng)mysql并映射數(shù)據(jù)目錄(含備份腳本)的文章就介紹到這了,更多相關(guān)docker mysql映射目錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows Docker端口占用錯(cuò)誤及解決方案總結(jié)
在 Windows 環(huán)境下使用 Docker 容器時(shí),端口占用錯(cuò)誤是開發(fā)和運(yùn)維中常見且棘手的問(wèn)題,本文將深入剖析該問(wèn)題的成因,介紹如何通過(guò)查看端口分配,合理調(diào)整動(dòng)態(tài)端口范圍,以及重啟網(wǎng)絡(luò)服務(wù)等實(shí)用技巧,有效解決 Windows Docker 端口占用錯(cuò)誤,需要的朋友可以參考下2025-04-04Docker?部署?vue?項(xiàng)目的詳細(xì)流程
使用Docker配合Nginx部署Vue3項(xiàng)目涉及多個(gè)步驟:首先安裝Nginx,然后創(chuàng)建掛載目錄及配置文件;接著打包Vue項(xiàng)目并上傳至服務(wù)器;最后創(chuàng)建Dockerfile,構(gòu)建鏡像并啟動(dòng)容器,部署完成后,通過(guò)IP訪問(wèn)應(yīng)用以驗(yàn)證是否成功2024-09-09Docker 常用命令整理及使用注意事項(xiàng)總結(jié)
這篇文章主要介紹了Docker 常用命令整理及使用注意事項(xiàng)總結(jié)的相關(guān)資料,這里整理了Docker 的常用命令,說(shuō)明這些命令是什么意思及使用方法,需要的朋友可以參考下2016-12-12docker容器增加端口映射全過(guò)程(修改配置文件方式)
文章詳細(xì)描述了如何通過(guò)修改Docker容器的配置文件來(lái)增加端口映射,以解決已經(jīng)運(yùn)行的容器需要增加端口映射的問(wèn)題,以MySQL容器為例進(jìn)行了具體操作步驟的說(shuō)明2024-11-11使用Docker時(shí)內(nèi)存占用過(guò)高的解決方案
在使用 Docker 進(jìn)行容器化部署時(shí),內(nèi)存占用過(guò)高是一個(gè)常見問(wèn)題,當(dāng)服務(wù)器內(nèi)存被耗盡時(shí),會(huì)導(dǎo)致系統(tǒng)性能下降,甚至可能導(dǎo)致服務(wù)宕機(jī),本文將介紹如何排查和解決 Docker 環(huán)境下的內(nèi)存占用問(wèn)題,需要的朋友可以參考下2024-12-12Docker調(diào)度器Kubernetes使用過(guò)程
Docker和Kubernetes在使用方式上有相似性,初次接觸這兩個(gè)技術(shù)的同學(xué)常常會(huì)搞混,但實(shí)際上它們并不是解決同一個(gè)問(wèn)題的技術(shù),也沒(méi)有辦法用其中一個(gè)替代另一個(gè)。通俗一點(diǎn)來(lái)說(shuō),Docker解決的是容器技術(shù)直接相關(guān)的問(wèn)題,而Kubernetes更多地關(guān)注在集群上調(diào)度和部署容器應(yīng)用2022-12-12