欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker啟動MySQL容器失敗原因分析以及排查記錄

 更新時間:2025年02月10日 16:18:18   作者:暴躁的魚  
在使用Docker啟動MySQL容器時,遇到了配置文件路徑錯誤的問題,通過查看容器日志發(fā)現(xiàn),容器讀取的配置文件路徑與指定的不一致,解決方法是修改啟動命令中的配置文件路徑,將其指向正確的目錄,最終,容器成功啟動并進入Up狀態(tài)

docker啟動MySQL容器失敗原因及排查記錄

背景

最近在嘗試容器搭建MySQL集群時碰到一個錯誤,啟動MySQL時碰到一個,經過排查解決,在此做一個記錄

問題過程

啟動MySQL容器

$ sudo docker run -d -p 3306:3306 \
> --name mysql \
> -v /opt/mysql/log:/var/log/mysql \
> -v /opt/mysql/data:/var/lib/mysql \
> -v /opt/mysql/conf:/etc/mysql \
> -e MYSQL_ROOT_PASSWORD=root \
> mysql
3cf4012772cc2e22732aa6d5eb716d7b290a95da25b750d4a1189e77ab985f33
# 運行后,查看運行中的容器發(fā)現(xiàn)沒有剛啟動MySQL
[bing@centosone nginx]$ sudo docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED        STATUS        PORTS                                                                        NAMES
5c7b103435d1   nginx:latest   "/docker-entrypoint.…"   8 hours ago    Up 8 hours    0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:85->80/tcp, [::]:85->80/tcp   my-nginx
28cda42916c3   nginx:latest   "/docker-entrypoint.…"   15 hours ago   Up 15 hours   0.0.0.0:82->80/tcp, [::]:82->80/tcp                       
  • mysql/log:存儲MySQL日志
  • mysql/data:是數(shù)據(jù)庫文件(庫表數(shù)據(jù)存放處)存放的地方。必須要掛載到容器外,否則容器重啟一切數(shù)據(jù)消失。
  • mysql/conf:mysql配置,mysql啟動時讀取配置

查看所有容器docker ps -a

發(fā)現(xiàn)MySQL是已經exit了

$ sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS                      PORTS                                                                        NAMES
4e163949caa2   mysql          "docker-entrypoint.s…"   20 minutes ago   Exited (1) 17 minutes ago                                                                                mysql

然后嘗試刪除容器重啟還是一樣

$ sudo docker rm 4e1
4e1
$ sudo docker run -p 3306:3306 
--name mysql 
-v /opt/mysql/log:/var/log/mysql 
-v /opt/mysql/data:/var/lib/mysql 
-v /opt/mysql/conf:/etc/mysql 
-e MYSQL_ROOT_PASSWORD=root 
-d mysql
b3153c7d9d33f28e9808fbd6f8feea44ac12e45f9aec637a789a29b9f7f5dcd2

# 仍然是exit狀態(tài)
$ sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS                     PORTS                                                                        NAMES
b3153c7d9d33   mysql          "docker-entrypoint.s…"   3 seconds ago   Exited (1) 2 seconds ago                                                                                mysql

查看容器日志

$ sudo docker logs --tail 100 --follow --timestamps {容器名稱}

問題原因

如上圖,查看日志發(fā)現(xiàn)是沒有配置文件目錄,我們的命令指定的配置文件路徑是/etc/mysql/,而容器讀取的配置文件路徑是/etc/mysql/conf.d/。

在這一行-v /opt/mysql/conf:/etc/mysql,我們將主機路徑/opt/mysql/conf掛載到容器路徑/etc/mysql下,實際上容器配置在/etc/mysql/conf.d/目錄下。

修改啟動命令

修改啟動命令中的配置文件路徑,再次重新啟動成功,如下:

sudo docker run -p 3306:3306 --name mysql \
-v /opt/mysql/log:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql
ef8d15ff3c2828b718357ad7d41117ca46c3fec7bb6b3a365c886926b275fbb8

# 啟動成功
sudo docker ps 
[sudo] bing 的密碼:
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                                        NAMES
ef8d15ff3c28   mysql          "docker-entrypoint.s…"   11 minutes ago   Up 11 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp              

mysql容器終于是 Up 狀態(tài)了

總結

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

相關文章

  • 詳解利用ELK搭建Docker容器化應用日志中心

    詳解利用ELK搭建Docker容器化應用日志中心

    這篇文章主要介紹了詳解利用ELK搭建Docker容器化應用日志中心,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Docker Compose如何編排多個容器

    Docker Compose如何編排多個容器

    使用Docker Compose編排多個容器是一種簡單而強大的方式,可以在單個文件中定義、配置和管理多個容器,本文主要介紹了Docker Compose如何編排多個容器,感興趣的可以了解一下
    2023-11-11
  • docker文件存放路徑, 獲取容器啟動命令操作

    docker文件存放路徑, 獲取容器啟動命令操作

    這篇文章主要介紹了docker文件存放路徑, 獲取容器啟動命令操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 詳解Docker 容器基礎系統(tǒng)鏡像打包

    詳解Docker 容器基礎系統(tǒng)鏡像打包

    這篇文章主要介紹了詳解Docker 容器基礎系統(tǒng)鏡像打包,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • docker如何部署etcd集群

    docker如何部署etcd集群

    這篇文章主要介紹了docker如何部署etcd集群問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解Docker守護進程的配置及日志

    詳解Docker守護進程的配置及日志

    這篇文章主要介紹了詳解Docker守護進程的配置及日志,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Prometheus容器化部署的實踐方案

    Prometheus容器化部署的實踐方案

    這篇文章主要介紹了Prometheus容器化部署,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Docker 安裝 LogStash的詳細過程

    Docker 安裝 LogStash的詳細過程

    Logstash,作為Elastic Stack家族中的核心成員之一,是一個功能強大的開源數(shù)據(jù)收集引擎,在本文中,我們將詳細介紹如何借助Docker容器技術快速安裝配置Logstash,以實現(xiàn)日志及各類事件數(shù)據(jù)的無縫集成與實時處理,感興趣的朋友一起看看吧
    2024-03-03
  • Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細過程

    Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細過程

    這篇文章主要介紹了Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Docker 多主機網(wǎng)絡通信詳細介紹

    Docker 多主機網(wǎng)絡通信詳細介紹

    這篇文章主要介紹了Docker 多主機網(wǎng)絡通信詳細介紹的相關資料,需要的朋友可以參考下
    2016-10-10

最新評論