2017-02-22 82 views
0

我有這個問題,我的應用程序Mysql的插座中缺少我的家園搬運工容器

SQLSTATE [HY000] [2002]無法通過 套接字連接到本地MySQL服務器「/ var/run中/ mysqld的/mysqld.sock'(2)

我使用2個泊塢窗集裝箱主辦我laravel 4.2(我認爲:從這個build

這裏O)是我的搬運工,compose.yml

web: 
image: shincoder/homestead:php5.6 
restart: always 
ports: 
    - "8000:80" # web 
    - "2222:22" # ssh 
    - "35729:35729" # live reload 
    - "9876:9876" # karma server 
volumes: 
    - ~/.composer:/home/homestead/.composer # composer caching 
    - ~/.gitconfig:/home/homestead/.gitconfig # Git configuration (access alias && config) 
    - ~/.ssh:/home/homestead/.ssh # Ssh keys for easy deployment inside the container 
    - ~/apps:/apps # all apps 
    - ~/apps/volumes/nginx/sites-available:/etc/nginx/sites-available # nginx sites (in case you recreate the container) 
    - ~/apps/volumes/nginx/sites-enabled:/etc/nginx/sites-enabled # nginx sites (in case you recreate the container) 
links: 
    - mariadb 
mariadb: 
    image: tutum/mariadb 
    restart: always 
    ports: 
     - "33060:3306" 
    environment: 
     MARIADB_USER: admin # cannot be changed (for info. only) 
     MARIADB_PASS: root 
    volumes: 
     - ~/apps/volumes/mysql:/var/lib/mysql # database files 

第一個是homesteaddocker_web_1,使用php5.6,第二個是homesteaddocker_mariadb_1。 我已經在homesteaddocker_web_1中搜索了mysql套接字,但它並沒有在第二個容器中找到它(homesteaddocker_mariadb_1)

那麼我該如何解決這個問題。

回答

0

碼頭集裝箱與橋聯網。

對於一個容器說話到另一個,你需要將它們鏈接: https://docs.docker.com/engine/userguide/networking/

如果你的容器需要訪問你的本地網絡上的網絡ressources,你可能需要在泊塢窗運行命令使用--network='host'

+0

我更加困惑,我用docker-compose文件更新了我的問題。 – Getsuga

+0

我以爲你試圖訪問你的主機上運行的數據庫。所以,我的不好。 現在,你的連接字符串是什麼樣子?您不應該公開mariadb端口(除非您需要從外部訪問),並且您應該連接到mariadb:3306 – MrE

+0

@MEI可以使用這些憑據通過mysql工作臺訪問我的數據庫(主機:127.0.0.1,端口:33060,用戶名和密碼),它工作正常。我的laravel應用程序誰不能通過套接字連接到本地MySQL服務器。 – Getsuga