最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker-compose安裝MySQL8.0.39全過程

 更新時間:2025年10月24日 09:18:47   作者:會飛的土撥鼠呀  
這篇文章主要介紹了docker-compose安裝MySQL8.0.39全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

好的,這是一個使用 Docker Compose 安裝 MySQL 8.0.39 的詳細指南,包含數(shù)據(jù)持久化、自定義配置和基本安全設置。

1. 創(chuàng)建項目目錄

首先,創(chuàng)建一個獨立的目錄來存放所有相關文件,避免與其他項目混淆。

mkdir mysql-docker
cd mysql-docker

2. 創(chuàng)建docker-compose.yml文件

這是核心配置文件,定義了MySQL服務、卷、端口映射等。

version: '3.8'

services:
  mysql:
    image: mysql:8.0.39  # 指定精確版本
    container_name: mysql-8.0.39-container  # 自定義容器名,便于管理
    restart: unless-stopped  # 總是重啟,除非手動停止
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_root_password  # !??!務必修改?。。?
      MYSQL_DATABASE: my_app_db  # 可選:容器啟動時創(chuàng)建的數(shù)據(jù)庫
      MYSQL_USER: my_app_user    # 可選:創(chuàng)建普通用戶
      MYSQL_PASSWORD: your_strong_user_password  # ?。?!務必修改!?。?
      TZ: Asia/Shanghai          # 可選:設置容器時區(qū)
    ports:
      - "3306:3306"  # 將宿主機的3306端口映射到容器的3306端口
    volumes:
      - mysql_data:/var/lib/mysql  # 持久化數(shù)據(jù)
      - ./conf/my.cnf:/etc/mysql/conf.d/custom.cnf  # 掛載自定義配置文件
      - ./logs:/var/log/mysql  # 可選:掛載日志目錄
    networks:
      - mysql-network  # 加入自定義網(wǎng)絡(更安全)

volumes:
  mysql_data:  # 聲明一個命名卷,Docker會自動管理其位置

networks:
  mysql-network:  # 聲明一個自定義網(wǎng)絡
    driver: bridge

3. (可選) 創(chuàng)建自定義配置文件

創(chuàng)建 conf 目錄并放入你的 my.cnf 文件,用于覆蓋默認的MySQL設置。

mkdir -p conf

編輯 conf/my.cnf 文件:

[mysqld]
# 服務器字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 默認認證插件 (MySQL 8.0+ 默認使用 caching_sha2_password)
default_authentication_plugin=mysql_native_password

# 自定義其他參數(shù),例如最大連接數(shù)、緩沖區(qū)大小等
max_connections=200
innodb_buffer_pool_size=256M

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

4. 啟動 MySQL 容器

在包含 docker-compose.yml 文件的目錄下,運行以下命令來構建并啟動服務:

# 以后臺模式啟動 (-d 或 --detach)
docker-compose up -d

# 或者,如果你想在前臺啟動并查看日志,用于調(diào)試
# docker-compose up
# 使用 Ctrl+C 停止后,容器也會停止

5. 管理及常用命令

容器啟動后,你可以使用以下命令進行管理:

# 查看容器運行狀態(tài)
docker-compose ps

# 查看MySQL容器的實時日志
docker-compose logs -f mysql

# 停止服務(數(shù)據(jù)會保留在卷中)
docker-compose down

# 停止并刪除數(shù)據(jù)卷(警告:這會清除所有數(shù)據(jù)?。?
# docker-compose down -v

# 進入MySQL容器內(nèi)部的bash終端
docker-compose exec mysql bash

# 使用MySQL命令行客戶端直接連接(推薦方式)
# 方式一:在宿主機上連接(因為映射了端口)
mysql -h 127.0.0.1 -P 3306 -u root -p
# 然后輸入在yml文件中設置的 MYSQL_ROOT_PASSWORD

# 方式二:通過exec在容器內(nèi)執(zhí)行mysql命令(無需網(wǎng)絡和密碼,安全快捷)
docker-compose exec mysql mysql -u root -p

關鍵配置解釋

image: mysql:8.0.39

  • 明確指定版本,避免因拉取 latest 標簽而意外升級。
  • Docker Hub 會緩存此版本,如果本地沒有會自動拉取。

volumes

  • mysql_data:/var/lib/mysql:這是最重要的部分,它將數(shù)據(jù)庫文件存儲在名為 mysql_data 的 Docker 管理卷中,即使容器被刪除,數(shù)據(jù)也不會丟失。
  • ./conf/my.cnf:/etc/mysql/conf.d/custom.cnf:將本地配置文件掛載到容器的配置目錄。MySQL會自動加載 /etc/mysql/conf.d 目錄下所有以 .cnf 結尾的文件。

environment

  • MYSQL_ROOT_PASSWORD必須設置,這是root用戶的密碼。
  • MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD:可選,用于在啟動時自動創(chuàng)建數(shù)據(jù)庫和用戶。

ports

  • "3306:3306":將容器服務的3306端口暴露給宿主機。
  • 如果宿主機3306端口已被占用,可以改為 "3307:3306"(用宿主機3307端口映射容器3306端口)。

networks

  • 使用自定義網(wǎng)絡 mysql-network 可以提高安全性。
  • 如果其他服務(如Web應用)也在同一個Compose文件中定義,它們可以通過服務名(mysql)直接通信,而無需向宿主機暴露端口。

安全建議

  • 強烈修改默認密碼:示例中的 your_strong_root_password 一定要換成復雜且唯一的密碼。
  • 謹慎暴露端口:如果MySQL只被其他Docker容器訪問,可以不映射端口到宿主機(刪除 ports 部分),讓服務間通過Docker網(wǎng)絡內(nèi)部通信,更安全。
  • 定期備份:雖然數(shù)據(jù)在卷中,但仍需定期備份Docker卷(mysql_data)。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Docker鏡像下載的常見問題及解決辦法

    Docker鏡像下載的常見問題及解決辦法

    在使用Docker時,用戶常遇到下載鏡像錯誤,如TLS握手超時、請求取消等,主要由網(wǎng)絡狀況、配置問題或DockerHub服務導致,本文就來介紹了一下幾種解決方法,感興趣的可以了解一下
    2024-10-10
  • docker-compose基于MySQL8部署項目的實現(xiàn)

    docker-compose基于MySQL8部署項目的實現(xiàn)

    這篇文章主要介紹了docker-compose基于MySQL8部署項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Docker 鏡像傳輸?shù)膶崿F(xiàn)步驟

    Docker 鏡像傳輸?shù)膶崿F(xiàn)步驟

    本文主要介紹了Docker 鏡像傳輸?shù)膶崿F(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-08-08
  • 快速解決Docker鏡像無法拉取的問題

    快速解決Docker鏡像無法拉取的問題

    因國內(nèi)網(wǎng)絡問題,默認Docker鏡像源可能訪問緩慢或失敗,通過配置鏡像加速器(如阿里云、華為云等),修改daemon.json文件并重啟服務,可顯著提升鏡像拉取速度,確保順利獲取鏡像
    2025-08-08
  • Docker入門與進階(基礎+實戰(zhàn)+進階+Compose+Swarm)超詳細版

    Docker入門與進階(基礎+實戰(zhàn)+進階+Compose+Swarm)超詳細版

    本文詳細介紹了Docker的基礎概念、安裝配置、鏡像與容器操作,包括數(shù)據(jù)卷、Dockerfile構建、網(wǎng)絡管理、Docker Compose單機部署和Swarm集群部署,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • 一文帶你了解Docker網(wǎng)絡模型

    一文帶你了解Docker網(wǎng)絡模型

    Docker是一種容器化平臺,它提供了一種輕量級的虛擬化解決方案,使得應用程序能夠以容器的形式運行,Docker網(wǎng)絡模型基于Linux內(nèi)核的網(wǎng)絡命名空間和虛擬以太網(wǎng)橋技術,本文就給大家詳細介紹一下Docker?網(wǎng)絡模型,需要的朋友可以參考下
    2023-07-07
  • docker保存鏡像到本地并加載本地鏡像文件詳解

    docker保存鏡像到本地并加載本地鏡像文件詳解

    平常我們下載docker鏡像會通過配置國內(nèi)源來加速下載,但是有時候會有另外的需求,比如某個機器不能聯(lián)網(wǎng),我們就需要從其他機器下載,打包后,拷貝到這個機器,下面這篇文章主要給大家介紹了關于docker保存鏡像到本地并加載本地鏡像文件的相關資料,需要的朋友可以參考下
    2022-08-08
  • 使用docker部署django的詳細步驟

    使用docker部署django的詳細步驟

    當用Django框架開發(fā)的網(wǎng)站項目完成后上線的話可以用物理主機、虛擬機來部署,也可以容器,下面這篇文章主要給大家介紹了關于使用docker部署django的詳細步驟,需要的朋友可以參考下
    2022-08-08
  • Spring Boot使用Docker分層打包的設置方法

    Spring Boot使用Docker分層打包的設置方法

    Spring Boot 現(xiàn)在支持分層打包技術了, 我們也來用一用, 加速Docker打包, 構建的時候速度也會非???本文重點給大家介紹Spring Boot使用Docker分層打包的設置方法,感興趣的朋友一起看看吧
    2021-08-08
  • 如何在docker容器內(nèi)部安裝kibana分詞器

    如何在docker容器內(nèi)部安裝kibana分詞器

    這篇文章主要介紹了如何在docker容器內(nèi)部安裝kibana分詞器,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10

最新評論

醴陵市| 仙游县| 凌源市| 尼勒克县| 海林市| 平定县| 柞水县| 鄱阳县| 双鸭山市| 若尔盖县| 阿拉善左旗| 民和| 桦南县| 双桥区| 天峻县| 新沂市| 奉贤区| 扶余县| 东丽区| 松桃| 论坛| 陕西省| 财经| 九龙坡区| 吉安市| 巩义市| 买车| 正阳县| 平乐县| 东海县| 阿克陶县| 自治县| 东兰县| 开封县| 莫力| 桑植县| 托克逊县| 宣恩县| 安陆市| 沽源县| 临汾市|