我是新来的docker和有一个简单的DW(dropwizard)应用程序连接到elasticsearch,其中已经运行在docker使用docker-compose.yml,其中有以下内容。
弹性搜索的Docker-compose.yml
version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.0
container_name: elasticsearch
environment:
- xpack.security.enabled=false
- discovery.type=single-node
ports:
- 8200:9200
- 8300:9300
volumes:
elasticsearch-data:
driver: local
注意:我将8200和8300公开为主机(本地mac系统)上的ES端口
现在,当我在本地主机上运行连接到8200中ES的DW应用程序时,一切都正常了,但现在我正在尝试对DW应用程序进行dockerize,并且面临一些问题。
下面是我的DW应用程序Dockerfile
COPY target/my.jar my.jar
COPY config.yml config.yml
ENTRYPOINT ["java" , "-jar" , "my.jar", "server", "config.yml"]
当我运行上面的DW docker映像时,它会立即停止,使用docker日志
*java.io.IOException: elasticsearch: Name does not resolve*
org.elasticsearch.client.IndicesClient.exists(IndicesClient.java:827)
**Caused by: java.net.UnknownHostException: elasticsearch: Name does not resolve**
我尝试过的事情
>
错误消息清楚地提到我的DW应用docker实例无法连接到elasticsearch,我验证运行正常。
还检查了Elatic search docker的网络,它的网络别名为elasticsearch
,如下所示,n/w为docker-files_default
。
“别名”:[“elasticsearch”,“de78c684ae60”],
检查了我的DW应用docker实例的n/w,它使用bridge
网络,并且没有任何网络别名。
现在,我如何使我的应用程序docker和elasticsearch docker使用相同的网络,以便它们可以相互连接,我想这将解决这个问题?
解决此问题的两种方法:首先是检查为elasticsearch设置创建的网络docker compose(docker network ls
),然后使用运行DW应用程序
docker运行--网络=
第二种方法是创建网络
docker network create elastic
,并将其用作docker compose文件以及DW应用程序的docker run命令中的外部网络。
Docker compose文件可能看起来像
...
services:
elasticsearch:
networks:
elastic:
...
networks:
elastic:
external: true
问题内容: 我正在尝试运行此项目-https://github.com/JumboInteractiveLimited/codetest 我已经下载了Docker工具箱,并执行了GitHub页面上提到的build和run命令,但是当我尝试访问http:localhost:8080时,该页面仍然不可用。 当我尝试再次执行运行时,Docker说 编辑 :澄清一下,我只有在第二次运行时才收到该错误。当我
问题内容: 我创建了一个Dockerfile在Docker内部运行Docker: 启动容器并运行docker ps后,我得到:“无法通过unix:///var/run/docker.sock连接到Docker守护程序。Docker守护程序正在运行吗?” 我在容器内执行了命令dockerd: 错误启动守护程序:错误初始化网络控制器:错误获取控制器实例:无法创建NAT链DOCKER:iptables失
我在docker compose yml文件中为广告侦听器配置了以下配置 警告O.apache.kafka.clients.networkclient-获取相关id为1的元数据时出错:{foo=leader_not_available} 主机可以从我的机器ping,因为它都在同一个网络中,没有防火墙问题。在docker容器中使用命令时,可以看到相同的主机名。我是不是漏掉了什么?
application.properties:这是spring mvc应用程序,应用程序使用带有两个数据库的MySQL db 我阅读了创建dockerfile和docker-compose文件的文章https://medium.com/@asce4s/dockerize-spring-mvc-application-a9ffbd11eadb https://github.com/abagayev/
我有一个akka-http应用程序,在本地工作得很好,我有一些问题“dockerizing”应用程序。我通过Dockerfile构建docker映像,并使用docker-entrypoint执行java-jar命令。当我第一次访问正在运行的docker容器时,应用程序并没有运行,但是如果我访问容器并手动执行java-jar命令,应用程序就会启动良好。如果我执行以下命令(在容器内),应用程序也会正常
我试着运行一个简单的Scala片段, 在安装了Scala的IntelliJ IDE中。然而,“Run”按钮似乎是灰色的,我在上下文菜单中也看不到它(在下面的屏幕抓取中没有显示)。 根据无法使用Intellij IDEA运行Java代码的答案,代码位于标记为蓝色的文件夹中。(我也尝试将其标记为“测试”文件夹,但无济于事)。我错过了什么?