设置可以在没有docker-compose

时间:2019-05-28 09:46:55

标签: docker dockerfile

我在单个docker容器中设置ElasticsSearch,Kibana和Logstash。 我发现的每个教程都使用docker-compose配置服务,但是由于公司机器的限制,我不能使用docker-compose。如何配置服务(即ES,kibana和Logstash),以使它们正确构建,可以在单个容器中运行并彼此通信?

我已经通过在docker-compose.yml中描述服务来测试了在本地计算机上的单个docker容器中构建ElasticSearch和Kibana的成功。

version: "2"

services:

  elasticsearch:
    image: elasticsearch:6.5.4
    ports:
      - "9200:9200"
    volumes:
      - ./esdata/:/usr/share/elasticsearch/data/

  kibana:
    image: kibana:6.5.4
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200

预期结果将是能够构建和运行ES,Kibana和Logstash。这些将能够彼此通信。 我目前知道如何将它们构建为完全独立的容器,但是不知道如何将它们配置为彼此“ docker-compose“合作”。

1 个答案:

答案 0 :(得分:1)

唯一重要的细节是两个容器必须为on the same Docker network。 Docker Compose会自动为您创建一个网络,但是,如果您不使用该工具,则需要手动进行操作。

Child class

import BaseImporter

class childImporter(BaseImporter):

      def __init__(self, folder_name: str, source: str, table: str):
        super().__init__(
            folder_name='my_folder',
            source='mysql',
            table='accounts',
        )

if __name__ == "__main__":
     importer = childImporter()
     importer.run_importer()