如何构建新的docker映像并启动容器
我是新来的码头工人。我想将rabbitmq消息推送到elastic 现在我有两个日志索引器图像:如何构建新的docker映像并启动容器,docker,rabbitmq,logstash,dockerfile,Docker,Rabbitmq,Logstash,Dockerfile,我是新来的码头工人。我想将rabbitmq消息推送到elastic 现在我有两个日志索引器图像:ctdcto23:5000/logstash indexer:latest和ctdcto23:5000/logstash indexer:1.0.0-rc3。它们之间的区别是indexer.conf。前者是 input { redis { host => '' port => key => ''
ctdcto23:5000/logstash indexer:latest
和ctdcto23:5000/logstash indexer:1.0.0-rc3
。它们之间的区别是indexer.conf
。前者是
input {
redis {
host => ''
port =>
key => ''
password => ''
data_type => 'list'
tags => ['service-log']
}
rabbitmq {
host => ''
user => ''
password => ''
port => 5672
queue => 'security audit'
exchage => 'exchange'
key => 'security audit'
durable => 'true'
}
}
输入{
雷迪斯{
主机=>''
端口=>
键=>“”
密码=>“”
数据类型=>“列表”
标签=>['service-log']
}
兔子{
主机=>''
用户=>“”
密码=>“”
端口=>5672
队列=>“安全审核”
交换=>“交换”
key=>“安全审计”
持久=>'true'
}
}
后者省略了rabbitmq。yaml文件如下所示:redis: image: ctdcto23:5000/redis:1.0.0-rc1 restart: always ports: - "6379:6379" elasticsearch: image: ctdcto23:5000/elasticsearch:1.0.0-rc3 restart: always ports: - "9200:9200" - "9300:9300" volumes: - /var/local/esdata:/usr/share/elasticsearch/data command: elasticsearch -Des.cluster.name="xx-cluster" -Des.node.name="xx-1" kibana: image: ctdcto23:5000/kibana:4.0.3 restart: always links: - elasticsearch ports: - "5601:5601" logstash-indexer: image: ctdcto23:5000/logstash-indexer:1.0.0-rc3 restart: always links: - redis - elasticsearch environment: - OPTS=--verbose redis: 图像:ctdcto23:5000/redis:1.0.0-rc1 重新启动:始终 端口: - "6379:6379" 弹性搜索: 图像:ctdcto23:5000/elasticsearch:1.0.0-rc3 重新启动:始终 端口: - "9200:9200" - "9300:9300" 卷数: -/var/local/esdata:/usr/share/elasticsearch/data 命令:elasticsearch-Des.cluster.name=“xx cluster”-Des.node.name=“xx-1” 基巴纳: 图像:ctdcto23:5000/kibana:4.0.3 重新启动:始终 链接: -弹性搜索 端口: - "5601:5601" 日志存储索引器: 图像:ctdcto23:5000/对数存储索引器:1.0.0-rc3 重新启动:始终 链接: -雷迪斯 -弹性搜索 环境: -OPTS=--verbose 使用Dockfile构建图像: FROM ctdcto23:5000/logstash:latest MAINTAINER xxx # Add a directory to process setup scripts for the container RUN mkdir -p /opt/logstash/conf /opt/logstash/patterns COPY indexer.conf /opt/logstash/conf/ COPY patterns/* /opt/logstash/patterns/ COPY docker-entrypoint.sh / RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] CMD ["logstash"] 从ctdcto23:5000/日志存储:最新 维护者xxx #添加目录以处理容器的安装脚本 运行mkdir-p/opt/logstash/conf/opt/logstash/patterns 复制indexer.conf/opt/logstash/conf/ 复制模式/*/opt/logstash/patterns/ 复制docker-entrypoint.sh/ 运行chmod+x/docker-entrypoint.sh 入口点[“/docker ENTRYPOINT.sh”] CMD[“logstash”]
问题是,当我构建新映像并用yaml文件启动它时。容器状态始终处于重新启动状态,无法进入容器。您发布的yaml文件应与
docker compose
一起运行。我不明白你在做什么;你能写下你是如何运行(和构建)容器的吗?无论如何,您可以使用docker exec
从已经运行的容器内部运行交互式会话(“输入容器”)。@Javier I使用docker compose命令启动容器。当我使用docker run直接使用图像构建时,我可以使用1.0.0-rc3进入容器并使用最新版本失败。事实上,我使用Dockfile构建映像,并使用yaml文件启动容器。indexer.conf文件中有不同的日志存储输入。您发布的yaml文件应该与docker compose
一起运行。我不明白你在做什么;你能写下你是如何运行(和构建)容器的吗?无论如何,您可以使用docker exec
从已经运行的容器内部运行交互式会话(“输入容器”)。@Javier I使用docker compose命令启动容器。当我使用docker run直接使用图像构建时,我可以使用1.0.0-rc3进入容器并使用最新版本失败。事实上,我使用Dockfile构建映像,并使用yaml文件启动容器。indexer.conf文件中有不同的日志存储输入。