Tag: 套接字

Docker中的Web Socket握手错误

我使用Python 3.5 , Flask和Meinheld Web套接字中间件来提供套接字。 这里是服务器端代码示例: @app.route('/chat') def chat(): ws = request.environ.get('wsgi.websocket') while True: m = ws.wait() if m is None: break ws.send(m) return "" 客户端代码示例: var s = new WebSocket("ws://localhost:4567/chat"); 然而,一切工作正常,而我在本地模式下运行,但是当我将此添加到docker容器中,我总是得到像这样的错误: WebSocket连接到'ws:// localhost:4567 / chat'失败:WebSocket握手期间出错:意外的响应代码:500 docker容器在远程服务器或本地环境中的运行位置并不重要,错误总是相同的。 所有必要的端口都被暴露。

从socket.getInpitStream()读取时返回的二进制字符

package com.examenginedashboard.docker.utils; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; import com.examenginedashboard.CONSTANTS.MyValuesConstans; import com.examenginedashboard.codePG.service.HttpHijack; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.command.DockerCmdExecFactory; import com.github.dockerjava.api.command.ExecCreateCmdResponse; import com.github.dockerjava.api.command.InspectExecResponse; import com.github.dockerjava.api.model.Bind; import com.github.dockerjava.api.model.ExposedPort; import com.github.dockerjava.api.model.Ports; import com.github.dockerjava.api.model.Volume; import com.github.dockerjava.core.DefaultDockerClientConfig; import com.github.dockerjava.core.DockerClientBuilder; import com.github.dockerjava.core.DockerClientConfig; import com.github.dockerjava.core.command.ExecStartResultCallback; import com.github.dockerjava.jaxrs.JerseyDockerCmdExecFactory; public class APIBasedCodeCompiler { public static void connectToDocker(){ DockerCmdExecFactory […]

docker集装箱之间的连接失败

我的应用程序由一个独立的java服务器,一个客户端java web启动应用程序,一组所有在一个wildfly实例中运行的webapps以及postgres组成。 客户端容器只是一个服务于JNLP和相应的java客户端的nginx服务器。 我所有的容器都在同一台主机上运行。 这里是我的dockerfile的一个稍微精简版本: version: '3' services: server: privileged: true image: <server_image> networks: – myapp client: image: <client_image> networks: – myapp webapp: privileged: true image: <wildfly_image> networks: – myapp postgres: image: <postgres_image> volumes: – /pgdata:/pgdata networks: – myapp lb: image: dockercloud/haproxy:latest environment: – FORCE_DEFAULT_BACKEND=False – ADDITIONAL_BACKEND_WEBAPPS=server webapp1 webapp:8080 – ADDITIONAL_BACKEND_CLIENT=server client1 client:80 – ADDITIONAL_BACKEND_SERVER=mode […]

UDP数据包不会转发到Docker容器内的Node Application

我在我的桌面上有一个docker容器,我可以直接通过docker机IP地址{1}发送udp数据包。 但是,当我尝试去另一台计算机并通过{2}发送相同的请求到我的机器(我通过wireshark观察到udp数据包已收到),数据包不会被转发到docker容器中。 我正在使用{3}来运行泊坞窗容器。 在docker文件中,我正在像{4}一样暴露端口。 {1} echo“test”> / dev / udp / {dockerMachineIP} / 5001 {2} echo“test”> / dev / udp / {machineIP} / 5001 {3} docker run -p 5001:5001 / udp imageName {4} EXPOSE 5001 / udp

Docker-compose:https express服务器之间的连接

两个Express服务器在docker-compose下的docker容器中运行。 version: '2' services: server-1: build: . ports: – "8080:8080" links: – db volumes: – .:/www – /www/node_modules server-2: build: ../server-2 links: – api-server volumes: – ../server-2/:/www – /www/node_modules server-2通过套接字连接使用以下地址连接到server-1 : http://server-1:8080 (socket.io库)。 一切都很完美。 但是,如果我试图在server-1内使用https模块而不是http ,则server-2无法连接到它。 我已经尝试了几乎所有变化的端口(8080到443等)和改变套接字连接地址协议从http到https 。 只有一个variables一直存在:我可以在http和连接build立的任何端口上运行服务器,但是一旦它变成https ,它就会停止连接。

连接被拒绝

当我试图连接到塔兰图尔服务器,我得到以下错误: 线程“main”中的exceptionjava.net.ConnectException:Connection refused:在java.net.AbstractPlainSocketImpl的java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)上的java.net.DualStackPlainSocketImpl.connect0(Native Method)处进行连接。在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)处的java.net.PlainSocketImpl.connect(PlainSocketImpl.java)上的java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)处的doConnect(AbstractPlainSocketImpl.java:350) :172)在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)在java.net.Socket.connect(Socket.java:589)在java.net.Socket.connect(Socket.java:538)在java (Socket.java:434)在TarantoolKt.main(Tarantool.kt:37) 我的代码: class Tarantool { val client: TarantoolClient init { val config: TarantoolClientConfig = TarantoolClientConfig() config.apply { username = "test" password = "test" } val socketChannelProvider: SocketChannelProvider = SocketChannelProvider { _, p1 -> when(p1) { null -> { println("Trying to connect . . .") SocketChannel.open(InetSocketAddress("192.168.1.254", 3301)) // <- error } […]

mySQL Docker“错误2002(HY000):无法通过套接字连接到本地MySQL服务器”

有一个脚本来拉起一些MySQL服务器变种,并testing我的脚本在不同的版本。 我的shellcript是: docker pull mysql:$version docker run -d -v $(pwd)/mysql.sh:/mysql.sh –name=mysql."$version" -e MYSQL_ROOT_PASSWORD='root' mysql:"$version" docker exec -it mysql."$version" bash -c 'bash ./mysql.sh' mysql.sh文件是: /etc/init.d/mysql restart || service mysql restart || service mysqld restart mysql -proot -e "SELECT @@version" 我得到以下错误: ./mysql.sh: line 1: /etc/init.d/mysql: No such file or directory mysql: unrecognized service mysqld: unrecognized service ERROR […]

Docker安装插槽音量

在Docker容器中,我想用另一个Linux Socket来挂载一个volume_from,这个问题会在后台运行。 AFAIK Linux套接字只是内存,但一旦安装在另一个容器上,它是如此或以某种方式使用IO? 谢谢。

防止Docker撰写创build单独的networking

我发现,使用版本2的YAML语法时, Docker Compose会将容器放在单独的networking中。 这使得与现有容器的链接困难。 有没有办法来防止这种情况,并恢复到版本1的行为,而没有实际回复?

Docker守护进程连接到2375上的套接字

我已经configuration了我的Docker版本1.12的systemd来侦听端口:2375。 [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target [Service] Type=notify ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 ExecReload=/bin/kill -s HUP MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process [Install] WantedBy=multi-user.target 结果是: *tcp6 0 0 :::2375 :::* LISTEN* 但是,当我尝试在主机的terminal上使用“docker”命令时,我正在运行Docker,得到以下结果: [root@docker1-12 ~]# docker images Cannot connect to the Docker daemon. Is […]