2017-05-18 139 views
1

我試圖按照https://docs.docker.com/get-started/part3/上的說明操作,但將其更改爲單個節點MariaDB數據庫。我使用的是docker-compose.yml文件看起來像這樣...使用碼頭堆棧在碼頭集裝箱中運行MariaDB

version: "3" 
services: 
    database: 
    image: mariadb:latest 
    environment: 
     MYSQL_DATABASE: jeesample 
     MYSQL_USER: jeeuser 
     MYSQL_PASSWORD: password 
    networks: 
    - webnet 
    ports: 
    - "3307:3306" 
networks: 
    webnet: 

然後我用

docker stack deploy -c docker-compose.yml jeesample 

但是啓動它,當我看着docker stack ps jeesample我得到如下:

ID   NAME      IMAGE   NODE DESIRED STATE CURRENT STATE     ERROR      PORTS 
9yjyzmi86aqm jeesample_database.1  mariadb:latest moby Running  Running less than a second ago 
gqamjzc2u1fw \_ jeesample_database.1 mariadb:latest moby Shutdown  Failed 6 seconds ago   "task: non-zero exit (1)" 
615zc8s0rts1 \_ jeesample_database.1 mariadb:latest moby Shutdown  Failed 18 seconds ago   "task: non-zero exit (1)" 
pod5ldwn6p6v \_ jeesample_database.1 mariadb:latest moby Shutdown  Failed 27 seconds ago   "task: non-zero exit (1)" 
ma1gkri9os14 \_ jeesample_database.1 mariadb:latest moby Shutdown  Failed 37 seconds ago   "task: non-zero exit (1)" 

嘗試從本地計算機上的SQL客戶端使用jdbc:mariadb://localhost:3307/jeesample進行連接失敗,因爲我無法連接

+0

好的問題知道,並?你能詳細說明你的期望嗎? – Edwin

+0

看不到問題... – n2o

+0

「無法連接」 - 錯誤文本可能會提供一些線索。 –

回答

1

診斷此問題的一種方法是查看日誌。要獲取日誌,請執行docker ps以獲取容器列表,然後選擇docker logs -f <container ID>以獲取日誌結果。由於它在碼頭上,因此集裝箱可能會在一段時間後消失,因此-f選項將保持連接狀態,直到它終止。

要解決該日誌說,需要有root用戶口令,我只是需要加入

MYSQL_RANDOM_ROOT_PASSWORD: "true" 

儘管有這樣的其他選項已經

MYSQL_ROOT_PASSWORD: "blah" // visible on source 
MYSQL_ALLOW_EMPTY_PASSWORD: "yes" // not recommended