docker一鍵部署MySQL的實(shí)現(xiàn)示例
1. 前期準(zhǔn)備
新部署前可以從倉庫(repository)下載 MySQL 鏡像,或者從已有部署中的鏡像生成文件:
# 查看當(dāng)前本地鏡像 docker images # 生成本地鏡像文件 docker save <IMAGE ID> -o mysql_8023.tar
2. 導(dǎo)入鏡像
# 在新部署的機(jī)器上導(dǎo)入鏡像 docker load -i mysql_8023.tar docker images
3. 創(chuàng)建部署腳本文件
mysql-deploy.sh 文件內(nèi)容如下:
#!/bin/bash # 生成目錄 mkdir -p /usr/local/docker/mysql/mysql-files mkdir -p /usr/local/docker/mysql/conf mkdir -p /usr/local/docker/mysql/logs mkdir -p /usr/local/docker/mysql/data # 將配置文件復(fù)制到相應(yīng)目錄 cp /root/my.cnf.template /usr/local/docker/mysql/conf/my.cnf # 修改屬主 chown -R polkitd:root /usr/local/docker/mysql/ # 創(chuàng)建容器 docker run -p 3306:3306 \ ? ? -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \ ? ? -v /usr/local/docker/mysql/conf:/etc/mysql \ ? ? -v /usr/local/docker/mysql/logs:/var/log/mysql \ ? ? -v /usr/local/docker/mysql/data:/var/lib/mysql \ ? ? -e MYSQL_ROOT_PASSWORD=root \ ? ? --name mysql \ ? ? --restart=always \ ? ? -e TZ=Asia/Shanghai \ ? ? -d cbe8815cbea8
4. MySQL 服務(wù)器配置文件模板
my.cnf.template 文件內(nèi)容如下:
[mysqld] max_allowed_packet = 1G explicit_defaults_for_timestamp=0 lower_case_table_names=1 log_timestamps=SYSTEM sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' binlog_expire_logs_seconds=259200 secure_file_priv='' log_bin_trust_function_creators=on character-set-server = utf8mb4 default_authentication_plugin=mysql_native_password datadir=/var/lib/mysql/ socket=/var/run/mysqld/mysqld.sock wait_timeout=30 innodb_buffer_pool_size = 4G max_connections = 1000 default-time-zone = '+8:00' port = 3306 skip-name-resolve innodb_print_all_deadlocks=1 log_output='table' server-id = 2955 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 gtid-mode = off local_infile=0 log_error='/var/lib/mysql/master.err' skip_symbolic_links=yes [mysqldump] quick max_allowed_packet = 1G [mysqld_safe] open-files-limit = 8192
5. 執(zhí)行腳本創(chuàng)建容器
./mysql-deploy.sh
6. 后續(xù)工作
# 進(jìn)入容器 docker exec -it mysql /bin/bash # 登錄 MySQL mysql -uroot -proot -S /var/lib/mysql/mysqld.sock # 創(chuàng)建用戶 create user dba identified by '123456'; grant all on *.* to dba with grant option;
7. 基本維護(hù)
# 查看鏡像 docker images # 查看容器 docker ps # 查看容器詳細(xì)信息 docker inspect <CONTAINER ID> # 重啟容器 docker restart mysql # 停止容器 docker stop mysql # 刪除容器 docker rm mysql
到此這篇關(guān)于docker一鍵部署MySQL的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)docker部署MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Docker中部署mysql服務(wù)的方法及遇到的坑
- docker部署mysql后無法連接的解決方式
- 詳解使用Docker部署MySQL(數(shù)據(jù)持久化)
- docker部署mysql 實(shí)現(xiàn)遠(yuǎn)程連接的示例代碼
- Docker部署Mysql8的實(shí)現(xiàn)步驟
- 使用Docker部署MySQL 5.7&8.0主從集群的方法步驟
- Docker 部署 Mysql8.0的方法示例
- Docker部署Django+Mysql+Redis+Gunicorn+Nginx的實(shí)現(xiàn)
- docker部署MySQL時(shí)無法啟動(dòng)問題的解決方法
- docker部署mysql8并設(shè)置可遠(yuǎn)程連接
- 使用docker-compose部署mysql的完整步驟
相關(guān)文章
docker-compose網(wǎng)絡(luò)設(shè)置之networks的使用
本文詳細(xì)解釋了在使用 Docker Compose時(shí)如何配置網(wǎng)絡(luò),包括創(chuàng)建、使用和問題解決等方面,介紹了如何通過docker-compose.yml文件快速編排和部署應(yīng)用服務(wù),同時(shí)解決網(wǎng)絡(luò)隔離問題,感興趣的可以了解一下2024-10-10Ubuntu Docker 的安裝部署及簡(jiǎn)單應(yīng)用
這篇文章主要介紹了Ubuntu Docker 的安裝部署的相關(guān)資料,這里說明介紹了詳細(xì)的步驟,需要的朋友可以參考下2016-10-10谷歌技術(shù)人員解決Docker鏡像體積太大問題的方法
這篇文章主要介紹了谷歌技術(shù)人員解決Docker鏡像體積太大問題的方法,涉及虛擬機(jī),谷歌docker鏡像構(gòu)建實(shí)踐及構(gòu)建工具bazel的介紹等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11Docker中部署Redis集群與部署微服務(wù)項(xiàng)目的詳細(xì)過程
這篇文章主要介紹了Docker中部署Redis集群與部署微服務(wù)項(xiàng)目,主要包括使用docker部署的好處以及Docker與Kubernetes對(duì)比分析,需要的朋友可以參考下2022-06-06六種Docker目錄掛載類型及注意事項(xiàng)總結(jié)
這篇文章主要介紹了六種Docker目錄掛載方式,包括數(shù)據(jù)卷掛載、綁定掛載、臨時(shí)文件系統(tǒng)掛載、命名卷掛載、匿名卷掛載和卷驅(qū)動(dòng)掛載,并詳細(xì)說明了每種掛載方式的定義、舉例和注意事項(xiàng),需要的朋友可以參考下2025-03-03關(guān)于dockerfile build過程中報(bào)/bin/sh: pip: command not found的解決方法
這篇文章主要介紹了關(guān)于dockerfile build過程中報(bào)/bin/sh: pip: command not found的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03