Docker端口映射。 在容器中运行达夫妮

我有点困惑。 我是这样在当地启动达芙妮: daphne common.asgi:channel_layer --port 8338 ,一切都“OK”。 当我使用curl -v 127.0.0.1:8338得到以下输出

 * Rebuilt URL to: 127.0.0.1:8338/ * Trying 127.0.0.1... * TCP_NODELAY set * Connected to 127.0.0.1 (127.0.0.1) port 8338 (#0) > GET / HTTP/1.1 > Host: 127.0.0.1:8338 > User-Agent: curl/7.51.0 > Accept: */* 

但是当我尝试启动docker容器与端口分配,它不认为已经使用8338端口:

  docker run \ -tid \ -p 8338:8338 \ -v $(PWD):/app \ --network matryoshka_net \ --hostname matryoshka_daphne \ --name matryoshka_daphne \ matryoshka_daphne 

运行上面的代码是“ok”,已经启动了daphne。 所以在我看来,端口分配不当。

我错过了什么?

所以这产生了下一个问题,我不能通过nginx将信号redirect到websockets到我的docker容器。 因为8338端口上没有任何东西(只有集装箱启动时)。 这里是nginx.conf:

 server { listen 127.0.0.1; gzip on; gzip_types text/plain application/json text/css application/x-javascript text/javascript application/javascript; location / { proxy_set_header Host $host; proxy_read_timeout 20s; client_max_body_size 10m; proxy_pass http://127.0.0.1:8000; } location /ws/ { proxy_pass http://127.0.0.1:8338; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } 

Interesting Posts