我在单个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
“合作”。
答案 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()