![](/img/trans.png)
[英]Can't see staring installation page of wordpress docker container based on alpine linux
[英]Mysql installation for alpine linux in docker
我在 docker 的 alpine 上安裝 mysql 仍然有問題。
我還需要 openjdk:8u201-jdk-alpine3.9。
我的碼頭檔案:
FROM openjdk:8u201-jdk-alpine3.9
RUN apk update && \
apk add mysql mysql-client && \
rm -f /var/cache/apk/* && \
addgroup mysql mysql && \
mkdir run/mysqld && \
touch /var/run/mysqld/mysqld.sock && \
touch /var/run/mysqld/mysqld.pid && \
chown -R mysql:mysql /var/run/mysqld/mysqld.sock && \
chown -R mysql:mysql /var/run/mysqld/mysqld.pid && \
chmod -R 644 /var/run/mysqld/mysqld.sock && \
apk add openrc --no-cache
但是,在容器中: - 沒有 mysql 服務(只有 mariadb,但這可能是 alpine 的標准情況) - /etc/mysql 目錄中沒有任何 my.cnf 文件
當我嘗試mysql
命令時,出現錯誤:
Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (111)
當我嘗試mysql -h 127.0.0.1 -P 3306 -u root
命令時,出現錯誤:
Can't connect to MySQL server on '127.0.0.1' (115)
本地主機也是如此。
首先 - 為什么要在該特定圖像上安裝 mysql-server ? 我建議使用 2 個單獨的容器 - 一個用於 mysql 數據庫,另一個用於您使用 openjdk 映像開發的應用程序。
您可以簡單地使用此要點https://gist.github.com/karlisabele/d0bebe3d27fc44a57d1db9a9abdff45a來創建一個設置,您的 Java 應用程序可以使用database
(服務名稱)作為 mysql 服務器的主機名連接到 mysql 數據庫。
有關 mysql 映像的其他配置,請參閱https://hub.docker.com/_/mysql (您應該定義 MYSQL 用戶、密碼、數據庫名稱等...)
更新
我更新了要點並添加了 mysql 工作所需的環境變量...用您自己的值替換 qwerty 值,您應該能夠使用數據庫中提供的用戶名和密碼通過 database:3306 從 Java 應用程序訪問數據庫環境變量
文件末尾的卷定義告訴 docker 守護進程我們想在主機文件系統的某處創建一個持久卷並使用mysql
作為別名。 因此,當我們定義數據庫服務卷時,我們可以簡單地使用 mysql:/var/lib/mysql,它實際上會掛載 docker 在您的文件系統上創建的一個不起眼的文件夾。 這將允許 mysql 數據庫在您每次啟動服務時具有持久狀態(因為它會從您的主機掛載數據)並且您不必擔心卷的實際位置
您可以通過運行docker volumes ls
查看所有卷
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
#skip-networking
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.