docker部署mysql及制作鏡像壓縮包實(shí)踐
前言:本次教程系統(tǒng)是基于centos7。
拉取mysql鏡像
1、需要先配置docker加速鏡像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://docker.wctmd.us.kg"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker如果不配置是無(wú)法拉取mysql鏡像的,如下

配置后執(zhí)行拉取命令:

執(zhí)行如下命令可查看已拉取的鏡像及版本
docker images

也可設(shè)置特點(diǎn)版本下載所需要的mysql鏡像,如:
docker pull mysql:5.7
我下載了mysql5.7版本的鏡像


2、制作壓縮包
docker save -o mysql.tar mysql
mysql.tar 壓縮包名稱
mysql 本地mysql鏡像名稱

刪除mysql鏡像
docker rmi mysql

現(xiàn)在我本地只剩mysql5.7的鏡像
切換到壓縮包的目錄,用本地壓縮包加載鏡像,這樣就不用每次都遠(yuǎn)程去拉取鏡像
docker load -i mysql.tar

3、用鏡像部署mysql容器
需要把mysql配置文件my.cnf上傳,my.cnf內(nèi)容如下:
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/8.3/en/server-configuration-defaults.html [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M # Remove leading # to revert to previous value for default_authentication_plugin, # this will increase compatibility with older clients. For background, see: # https://dev.mysql.com/doc/refman/8.3/en/server-system-variables.html#sysvar_default_authentication_plugin # default-authentication-plugin=mysql_native_password host-cache-size=0 skip-name-resolve datadir=/var/lib/mysql socket=/var/run/mysqld/mysqld.sock secure-file-priv=/var/lib/mysql-files user=mysql default-time-zone='Asia/Shanghai' pid-file=/var/run/mysqld/mysqld.pid [client] socket=/var/run/mysqld/mysqld.sock !includedir /etc/mysql/conf.d/
其中要注意設(shè)置mysql時(shí)區(qū),上面的配置我加了時(shí)區(qū),不然數(shù)據(jù)庫(kù)默認(rèn)是UTC時(shí)區(qū)
default-time-zone='Asia/Shanghai'
把my.cnf上傳到/usr/local/mysql目錄下
執(zhí)行下面命令即可部署mysql容器
docker run -d --restart=always --name mysql -p 3307:3306 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/conf.d/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql
注意3307是宿主機(jī)端口,3306是容器內(nèi)部mysql端口,
--restart=always 表示把mysql容器設(shè)置到開(kāi)機(jī)啟動(dòng)服務(wù)中,系統(tǒng)重啟后,mysql容器隨機(jī)啟動(dòng)
-v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/conf.d/my.cnf 是把mysql數(shù)據(jù)庫(kù)數(shù)據(jù)、配置文件掛載到宿主機(jī)中,即使刪除了容器,mysql數(shù)據(jù)還存在,不丟失。每次用上面的命令重新部署容器,數(shù)據(jù)庫(kù)數(shù)據(jù)和配置文件都會(huì)自動(dòng)加載到容器中。
查看MySQL容器是否部署成功:
docker ps

說(shuō)明已經(jīng)部署成功,且狀態(tài)是正常的.
用命令進(jìn)入容器,進(jìn)入mysql,驗(yàn)證mysql是否正常運(yùn)行
docker exec -it mysql /bin/bash
mysql -uroot -p
然后輸入密碼即可進(jìn)入到mysql中:

至此,mysql部署完成,遠(yuǎn)程訪問(wèn),使用navicat或者phpmyadmin等工具,配置端口(我設(shè)置的宿主機(jī)端口是3307)。即可訪問(wèn)成功!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在OpenWrt設(shè)備上搭建Docker環(huán)境的完整方案
OpenWrt 作為一個(gè)高度可定制的嵌入式 Linux 發(fā)行版,其模塊化設(shè)計(jì)為 Docker 容器化部署提供了可能性,將 Docker 引入 OpenWrt 環(huán)境,能夠帶來(lái)許多優(yōu)勢(shì),所以本文給大家分享了在 OpenWrt 設(shè)備上搭建 Docker 環(huán)境的完整方案,需要的朋友可以參考下2025-04-04
從0開(kāi)始了解Docker入門(mén)(小結(jié))
本篇文章主要介紹了從0開(kāi)始了解Docker(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
使用docker打包項(xiàng)目的完整流程記錄(小白可懂)
這篇文章主要介紹了使用docker打包項(xiàng)目的完整流程,并詳細(xì)解釋了Dockerfile、構(gòu)建鏡像和創(chuàng)建容器的步驟,通過(guò)實(shí)戰(zhàn)項(xiàng)目大家可以掌握基本的Docker打包流程,需要的朋友可以參考下2025-04-04
使用Docker構(gòu)建并部署Go Web服務(wù)的詳細(xì)教學(xué)
在現(xiàn)代軟件開(kāi)發(fā)中,應(yīng)用的可移植性和環(huán)境一致性至關(guān)重要,本文將帶你從零開(kāi)始,實(shí)戰(zhàn)演示如何使用 Docker 構(gòu)建并部署一個(gè) Go Web 服務(wù),需要的可以了解下2025-10-10

