LoginSignup
6
8

More than 5 years have passed since last update.

docker-compose.yml を分割して external_links でコンテナを接続

Last updated at Posted at 2018-08-10

はじめに

docker-composeファイルを分割させた時にしたことです。

今回はkibanaからelasticsearchに通信します。

環境

  • docker-compoase
  • elasticsearch
  • kibana

分割前のdocker-compose.yml

docker-compose.yml
version: '2'
services:
  elasticsearch:
    container_name: esc
    image: esi:1.0.0
    build: ./es
    volumes:
      - ./data/es:/usr/share/elasticsearch/data
    ports:
        - 9200:9200
    expose:
        - 9300
  kibana:
    container_name: kibanac
    image: kibanai:1.0.0
    build: ./kibana
    links:
      - elasticsearch
    ports:
      - 5601:5601

このdocker-compoase.ymlを分割させます。
linksを使っています。

分割後のdocker-compose.yml

ディレクトリ構成は以下の通りです。

└── elasticsearch_external_links
    └── es_d
        ├── docker-compose.yml
        ├── Dockerfile
        └── config
            └── elasticsearch.yml
    └── kibana_d
        ├── docker-compose.yml
        ├── Dockerfile
        └── config
            └── kibana.yml
es_d/config/elasticsearch.yml
http.host: 0.0.0.0

### x-pack functions
xpack.security.enabled: false
# 無償利用は1クラスタまで
xpack.monitoring.enabled: true
xpack.graph.enabled: false
xpack.watcher.enabled: false
es_d/docker-compose.yml
version: '2'
services:
  elasticsearch:
    build: .
    container_name: es_c_el
    image: es_i_el:1.0.0
    volumes:
      - ./data/es:/usr/share/elasticsearch/data
    ports:
        - 9200:9200
    expose:
        - 9300
es_d/Dockerfile
FROM docker.elastic.co/elasticsearch/elasticsearch:5.5.3

COPY ./config/elasticsearch.yml /usr/share/elasticsearch/config/elasticsearch.yml

# kuromojiをインストール
RUN elasticsearch-plugin  install analysis-kuromoji
kibana_d/config/kibana.yml
---
# Default Kibana configuration from kibana-docker.

server.name: kibana
server.host: "0"
elasticsearch.url: http://elasticsearch:9200
elasticsearch.username: elastic
elasticsearch.password: changeme
xpack.monitoring.ui.container.elasticsearch.enabled: true
kibana_d/docker-compose.yml
version: '2'
services:
  kibana:
    build: .
    container_name: kibana_c_el
    image: kibana_i_el:1.0.0
    external_links:
      - elasticsearch
    ports:
      - 5601:5601
    networks:
      - default
      - es1_default

networks:
  es1_default:
    external:
      name: es_d_default

ポイントは ディレクトリ名がそのままネットワーク名になっているところです
es_d_default

kibana_d/Dockerfile
FROM docker.elastic.co/kibana/kibana:5.5.3

COPY ./config/kibana.yml /opt/kibana/config/kibana.yml

実行

elasticsearchを起動

$ cd es_d
$ docker-compose up -d --build

kibanaを起動

$ cd kibana_d
$ docker-compose up -d --build

docker networkの確認

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
aaaaaaaaaaaa        es_d_default        bridge              local
bbbbbbbbbbbb        kibana_d_default    bridge              local

elasticsearch http://localhost:9200/
kibana http://localhost:5601/

github サンプル 分割前
github サンプル 分割後

これでOK

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8