Tag: 端口

如何使用端口转发使用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暴露端口不可缓解

我想运行容器,并在它们之间build立链接。 每个容器应该使用另一个端口。 在我启动所有的容器后,在netstat –tcp命令输出netstat –tcp不到暴露的端口。 我试图在–net=host docker run命令–net=host使用–net=host标志,但是会导致上面的错误信息。 来自守护进程的错误响应:冲突选项:主机typesnetworking不能与链接一起使用。 这会导致未定义的行为。 我怎样才能以myip:portnumber格式访问容器的端口?

Dockerfile – gradlew卡在下载

我使用此命令从Dockerfile构buildDocker-image: docker build -it /root/Documents/myDockerfiles/tomcat/. Dockerfile看起来如下所示: [root@srv01 ~]# cat /root/Documents/myDockerfiles/tomcat/Dockerfile FROM tomcat:8.0.32-jre8 MAINTAINER "John Doe <johndoe@dough.com>" RUN apt-get update && apt-get install -y git RUN git clone https://myusername:mypassword@mygiturl/mygroup/myproject.git RUN cd ./myproject/ && ./gradlew war 所以它基本上克隆了一个现有的git-repo,cds到克隆目录,并运行gradle包装器。 问题在于,gradle-wrapper似乎没有与外部的连接,因为: Step 5 : RUN cd ./myproject && ./gradlew war —> Running in d01b57b9f932 Downloading https://services.gradle.org/distributions/gradle-2.3-bin.zip (here its stuck, gradlw […]

阻塞除Docker之外的端口

我通过Docker在我的服务器上安装了一个jenkins,并将其分配给了一个特定的域(jenkins.mydomain.com),这非常好。 但是,如果我使用服务的端口浏览我的域名,我也可以访问jenkins(和docker工具中的其他服务),例如:mydomain.com:8181 我已经尝试了一些东西来阻止从外部的端口,使它只能通过域访问,但没有运气。 首先,我尝试阻止eth0接口的端口: iptables -A INPUT -i eth0 -p tcp –destination-port 8181 -j DROP 但它没有工作,因为当我试图从域名到达jenkins,我得到了错误503。 还试图阻止端口除了docker的IP每个传入的请求。 它也没有工作。 那么我怎样才能让外部端口无法访问,但Docker可以访问? iptables -L -n – 行号 Chain INPUT (policy ACCEPT) num target prot opt source destination Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 DOCKER-ISOLATION all — 0.0.0.0/0 0.0.0.0/0 2 DOCKER all — 0.0.0.0/0 […]

从主机访问Docker容器的本地主机

我正在运行cloudera docker quickstart映像(在Windows上),如本页所述 。 我运行它使用: docker run –hostname=quickstart.cloudera –privileged=true -t -i -p 7180:7180 -p 9080:9080 cloudera/quickstart:latest 它运行良好,我可以运行clouderapipe理器,并使用URL http://192.168.99.100:7180访问它。 到现在为止还挺好。 我也使用一个简单的应用程序在同一个容器内的localhost:9080上使用tomcat。 我如何在我的主机上访问它? 我尝试使用http://192.168.99.100:9080但它不起作用。 更新:我通过使用虚拟机ip,即192.168.99.100,而不是本地主机的服务器。 现在起作用了。 谢谢。

Docker端口转发不会调用css和图像

我已经在docker中设置了端口概念来访问我的容器magento2到本地连接的另一个系统。 这是Docker容器设置: docker run -it -d –name containerName -h www.myhost.net -v /var/www/html -p 3000:80 –net mynetwork –ip 172.11.0.10 –privileged myimagename 然后,执行容器: docker exec -it containerName bin/bash 卷path/ var / www / html与卷path我写一个index.html文件和访问anoter本地连接的系统其工作正常。 hostmachineip:3000 在我的容器(/ var / www / html)中安装了magnento2之后, 然后testing它为我工作,但不叫css和图像。 hostmachineip:3000 但Magento2工作文件在主机和端口转发工作文件,因为如果我打电话hostmachineip:3000 / index.html它工作正常。 但是:如果我打电话给主机的工作文件, hostmachineip:3000 它的redirect到正确的服务器, 用CSS和图像显示magento2主页。 远程机器 只调用CSS和图像。 configuration文件:/ etc / nginx / […]

Docker端口没有正确暴露

我有一个Docker容器(运行Couchbase),需要大量的开放端口。 所以我已经运行容器使用: docker run -d -p 4369:4369 -p 11209-11212:11209-11212 -p 8091-8092:8091-8092 -p 18091-18092:18091-18092 -p 11214-11215:11214-11215 -p 21100-21299:21100-21299 my-couchbase:latest 这似乎运行良好。 我可以导航到http://<docker_ip>:8091并查看pipe理控制台等。 但是 ,使用Couchbase Node SDK时,我无法连接,而是得到此处所述的TCP错误,这表示端口未公开。 要检查打开的端口,我运行nmap -v 192.168.99.100 (我的dockerIP),并没有看到任何打开! 怎么会这样? 有没有人有任何想法如何validation端口是否在Docker容器上正确打开? 我在这里亏本 一个快速docker ps显示: 5ca8ab8624b my-couchbase:latest "run_couchbase.sh" 18 minutes ago Up 18 minutes 0.0.0.0:4369->4369/tcp, 9100-9105/tcp, 9998-9999/tcp, 0.0.0.0:8091-8092->8091-8092/tcp, 0.0.0.0:11209-11212->11209-11212/tcp, 0.0.0.0:11214-11215->11214-11215/tcp, 0.0.0.0:18091-18092->18091-18092/tcp, 11207/tcp, 0.0.0.0:21100-21199->21100-21199/tcp, 21200-21299/tcp pensive_aryabhata 更新 : […]

使用Python在Docker镜像中构build一个简单的HTTPServer

我有一个docker镜像正在运行,但是我没有pipe理权限,因为他们是由pipe理员给我们的。 我想从Python脚本运行一个简单的HTTP服务器。 脚本如下: import SimpleHTTPServer import SocketServer as socketserver import os import threading class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): path_to_image = 'RGBWebcam1.png' img = open(path_to_image, 'rb') statinfo = os.stat(path_to_image) img_size = statinfo.st_size print(img_size) def do_HEAD(self): self.send_response(200) self.send_header("Content-type", "image/png") self.send_header("Content-length", img_size) self.end_headers() def do_GET(self): self.send_response(200) self.send_header("Content-type", "image/png") self.send_header("Content-length", img_size) self.end_headers() f = open(path_to_image, 'rb') self.wfile.write(f.read()) f.close() class MyServer(socketserver.ThreadingMixIn, socketserver.TCPServer): def […]

Docker堆栈部署:无法设置dnsrr作为入口暴露的端口

使用堆栈部署启动服务时,出现以下错误: “来自守护进程的错误响应:rpc错误:代码= 3 desc = EndpointSpec:使用入口模式发布的端口不能与dnsrr模式一起使用” testing导致我尝试:手动创build一个networking, ignress=false设置ignress=false ,启动堆栈部署而不暴露端口并将节点连接到networking,然后手动暴露端口。 docker service update –publish-add 5672:5672 service_name1 但仍然得到相同的错误。 有什么想法吗?

Docker容器(Windows10,Centos7)端口

我有Docker镜像(来自私有的primefaces库)巫婆我作为一个容器在Docker(Windows10)中运行,一切都是正确的: docker run -d –net siecDocker –ip 172.18.0.22 –name UF -v /opt/DOCKER:/DEPLOY -p 9080:9080 -p 9043:9043 -p 9060:9060 ufek:1.0 我在本地和远程端口9043,9060,9080的应用程序和URL地址回答没有问题。 当我从资源库中取出这个图像在centos7并运行它的容器正在运行与我的应用程序,但端口不答复。 它是相同的图像! 和运行的语法也是一样的。 我不知道什么是错的? 其他的图片都没错,只有这个是有问题的。