Tag: portforwarding

无法访问在Docker容器中启动的Tomcat

我正在启动Tomcat作为Docker容器: $ docker run -dP tomcat 该过程正确启动: $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 48b87e545c18 tomcat "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:32769->8080/tcp hopeful_ardinghelli $ docker logs 48b87e545c18 16-Sep-2015 17:16:38.027 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.0.26 16-Sep-2015 17:16:38.037 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Aug 18 2015 […]

Docker中的SSH端口转发

我有这两个容器,比如backend (CentOs)和mongo 。 我想要的是,从backend容器内,我可以连接到mongo数据库,就好像它在本地运行$> mongo localhost:27017 无论如何,据我了解这一切,你可以映射到本地端口:27017到mongo:27017像这样 $backend> ssh -L 27017:mongo:27017 root@mongo 但是,如果我这样做,我必须提供root密码,之后它将我login到mongo容器中,并且没有端口转发 背景:我想这样做,因为我正在运行一个Java程序连接到本地主机上的Mongo数据库,我不能改变这一点。

无法连接到docker公布端口的tftp

我拼命试图在Docker容器中运行tftp-hpa。 我从dockerfilebuild立了一个图像,然后启动它: docker run -v /tmp:/srv/tftp -d -p 69:69/udp -t tftp_server 它正在运行,我可以通过虚拟docker界面访问服务器: me@hostmachine$ tftp 172.17.0.79 tftp> get /srv/tftp/test Received 7 bytes in 0.0 seconds 但是从我的意见来说,-p 69:69 / udp开关应该将主机的69端口转发到容器端口69.但是这似乎不起作用: me@hostmachine$ tftp localhost tftp> get /srv/tftp/test Transfer timed out. 从netstat,我看到我的主机上的端口69是打开的。 我尝试了与httpd服务器和端口80完全相同的情况。它在这里工作,我可以在我的浏览器中通过127.0.0.1:80访问网站。 主机是Ubuntu 15.04英特尔和docker的形象是基于Debian的基础形象。 有谁能够帮助我? 有什么我可以错过? 任何想法如何debugging? 我会高兴地分享我的Dockerfile或更多的信息,但试图保持简短的问题。

如何使用端口转发使用DNS名称连接到docker容器

我有2个redis容器在同一台机器上运行m1。 container1有端口映射6379到6400 docker run -d -p 6379:6400 myredisimage1 container2有端口映射6379到7500 docker run -d -p 6379:7500 myredisimage2 我正在寻找一个解决scheme,其他机器m2可以使用不同的DNS名称,但相同的端口号与机器m1进行通信。 redis.container1.com:6379 redis.container2.com:6379 我想redirect到机器m1内的适当的容器。 这有可能实现吗?

Docker容器应用内端口转发

我其实试图为Docker发出端口转发请求到远程服务器上的mysql数据库。 我的目标是在容器中创build一个应用程序生产的副本,该容器可以访问基于远程服务器的现有MySQL服务器。 我创build了一个embedded了所有需求的Dockerfile,如下所示: FROM python:2.7-alpine mkdir /working_env RUN apk add –update mysql\ mysql-client\ python-dev\ build-base \ && rm -rf /var/cache/apk/* # Requirements here RUN pip install -r requirements.txt WORKSPACE working_env COPY init.sh . # BIND TO 8053 RUN init.sh start 并使用映射到本地项目的卷运行此容器 docker run –name –rm project -v $(pwd):/working_env -d -p 8053:8053 project_docker 在我的代码中进行的调用如下: conn = […]

docker-compose中的端口转发

我试图将从hbase和php模块组合的遗留系统拆分成两个独立的容器,使用下面的docker-compose文件: version: '2' services: php: image: my-legacy-php volumes: – ~/workspace/php:/workspace/php ports: – "80:80" links: – hbase hbase: image: dajobe/hbase hostname: hbase-docker ports: – "43590-44000:43590-44000" – "8085:8085" – "2181:2181" – "8080:8080" – "16010:16010" – "9095:9095" – "9090:9091" – "16020:16020" – "16030:16030" – "60000:60000" volumes: – ~/workspace/hbase-docker/data:/data 我正在使用一个公共的hbase-docker图像,使用端口9090为节俭,而我的传统php模块期望通过端口9091连接。我已经尝试在docker-compose.yml文件中“映射”或“转发”9090 :9091“不缺。 我也尝试docker-compose的expose属性,但它并不需要两个端口(只有一个暴露给其他容器)。 我如何做这个追加? 我希望hbase容器的监听端口9090将从php容器(内部)显示为9091

无法访问Docker容器中的forwaded端口

遇到与在Docker容器中的特定端口上运行的应用程序通信的问题。 我已经使用端口转发创build了如下容器: docker运行-d -P –name my_app -p 8888:8888 访问容器内 (我的应用程序正在运行)的8888端口没有问题,但我无法从主机访问它。 docker ps确认端口正确转发: 813a83382f66 0.0.0.0:8888->8888/tcp,0.0.0.0:32827->22/tcp 将不胜感激任何帮助。 谢谢。 UPD: 主机是Ubuntu 16.04 。 该应用程序是一个运行在8888端口(使用NanoHttpd库)的Android应用程序。 它在容器内的android模拟器上运行。 $DOCKER_HOST值是空的 – 可以吗? curl -I http://0.0.0.0:8888 curl:(52)来自服务器的空回复 在Internet上search解决scheme后,我发现了一个可能的原因:应用程序应该听取0.0.0.0主机而不是localhost 。 但是,我明确指出,在Android应用程序初始化连接到0.0.0.0主机。

使用docker的Virtualbox端口转发

我在本地运行virtualbox ,并使用像这样的端口转发 0.0.0.0:7000 -> 0.0.0.0:7000 所以我可以做 curl http://localhost:7000 从主机到虚拟机,并能与vm中运行的应用程序进行通信,并监听7000端口。 是否有可能做出反向? 我想设置一个端口,以便能够 curl http://localhost:6000 从我的虚拟主机,并能够与运行在主机上的应用程序进行通信,并在端口6000上进行侦听。 我正在使用NAT 。 我已经知道桥接networking和使用我的主机的networkingIP。 我不能使用这些。 我感兴趣的是以上。 Exclaimer: 上述限制的原因是因为我用docker和docker-machine使用dinghy 。 如果我将networking更改为NAT以外的其他设备,则安装将会中断。 此外,我不能使用localhost以外的东西,因为这些是应用程序的默认值,我需要他们沟通,就好像他们在主机上运行。

在没有端口转发的情况下访问docker-machine VM端口

我试图学习Docker,到目前为止,我遇到了很多docker-machine中需要的“解决方法”,但是不是在boot2docker中。 我目前的问题是从我的主机访问我的docker容器。 我有我的Windows主机,运行一个用docker-machine创build的虚拟机,在这个docker虚拟机里面,我正在运行一个简单的nginx服务器容器。 运行nginx容器将其80端口暴露给docker机8000。 docker run -d -p 8000:80 nginx 而我试图实现的是能够从我的Windows使用浏览器打开此服务器。 如果我在Windows中使用curl(Git bash,而不是ssh-ed进入docker-machine虚拟机)使用docker-machine ip给我的IP,那么它可以工作。 但是,使用我的浏览器不(我目前正在使用Microsoft Edge),我可以让浏览器工作,如果我build立一个NAT端口转发。 curl $(docker-machine ip dev):8000 正如我已经读过,应该可以访问虚拟机端口,而不必为每个端口指定端口转发规则,VirtualBox应该自动公开和转发这些端口。 我在做什么错了,还是必须为我想要使用的虚拟机和主机操作系统之间的每个端口指定端口转发规则?

链接docker容器与主机

我想将docker主机端口(3389)转发到docker集装箱,以便容器可以连接到127.0.0.1:3389。 这有可能吗?