2017-06-18 18 views
0

Dockerを初めて使用しています。DockerコンテナがローカルにMySQLデータベースに接続する - >別のコンテナにリダイレクトする

コンテナごとにアプリを保有する方が良いと読んだことがあります。

ウェブアプリ(LAMPスタック)を実行する必要があります。だから私はPHP + Apacheを実行するためのコンテナを見つけました。

今、私はmysqlコンテナを設定する必要があります。しかし、私はそれを行う正しい方法は何か分かりません。

私は、複数のコンテナを一緒に接続できることを読んだ。

アイデアは、mysqlデータベースにローカルで接続しようとするとPHP + Apacheを実行するコンテナにtrasnparentにすることです。

しかし、すべてのローカル接続を別のコンテナにリダイレクトしてください。

私が持っているもう1つのアイデアは、ホストと環境変数を提供することです。どこにすべての接続が必要ですか。この場合、私は公にアクセス可能なmysqlサーバを持っている必要がありますが、私はそれをプライベートにして、ローカルにしかアクセスできないようにする必要があります。

私の場合、より良い選択肢をお選びください。

が使用docker-composeあなた

答えて

1

ありがとう:

たとえば、このdocker-compose.ymlから始めます。 PHPのDockerfileと同じディレクトリに置く:

version: "3" 
services: 
    web: 
    build: . 
    ports: 
     - 8000:80 
    depends_on: 
     - db 
    db: 
    image: mysql 
    environment: 
     - MYSQL_ROOT_PASSWORD=something 
    volumes: 
     - ./mysql-data:/var/lib/mysql 

その後:db:3306:ドッカーネットワークへ

docker-compose up 

のでおかげで、あなたはこのようにあなたのPHPから指すことができます。

+0

答えてくれてありがとうございます。だから、 'db'は内部的にdockerのvaildホスト名として解決されますか? – bxfvgekd

+0

はい。そのとおりです。 dbコンテナeth0 ipに解決されます。 'docker inspect container-id'を参照してください。 – Robert

+0

私はその機能について聞いたことがない、それを指摘してくれてありがとう、私はチェックします – bxfvgekd

関連する問題