I have a container with several ports. I want remote access to the port 9001
outside of the container.
- My docker IP is:
172.17.0.1
- My container IP is:
172.19.0.23
- My server IP is:
192.168.1.131
I have searched about this issue and I found the expose
and ports
attributes for ports forwarding but it did not work.
How to expose docker ports to make your containers externally accessible
Reference
This is my docker-compose
file:
version: '3'services: nginx: image: nginx:latest container_name: nginx ports: - "8010:8010" volumes: - .:/code - ./nginx/default.conf:/etc/nginx/conf.d/default.conf links: - ivms restart: unless-stopped ivms: build: . container_name: ivms command: bash bashes/createDB.sh volumes: - .:/code expose: - "8010" - "9001" ports: - "9001:9001"
Here's the code snippet inside the ivms
container:
import zmqif __name__ == '__main__': context = zmq.Context() socket = context.socket(zmq.SUB) socket.setsockopt(zmq.SUBSCRIBE, "") socket.bind("tcp://192.168.1.131:9001") # doesn't work with server or docker IP while True: data = socket.recv_json()
I run the above docker-compose
via docker-compose up -d
- But when I use the
server_IP:9001
which is192.168.1.131:9001
ordocker_IP:9001
which is172.17.0.1:9001
can not access either the remote or local mode. - But when using
container_IP:9001
which is172.19.0.23:9001
thisworks in local.
What should I do so that I can have access the server_IP:9001 --> 192.168.1.131:9001
?
[NOTE]:
In
createDB.sh
runs several operations such as creating a ZMQ on9001
port.I have been set the port allowing before, using
$ ufw allow 9001
I tried on Ubuntu 16.04 and Ubuntu-Server 16.04
Any help would be appreciated.