Unable to query remote server due to connection timeout

I have a couchbase cluster running on my laptop via docker-compose:

version: "3"
services:

  couchbase1:
    image: couchbase:community-6.6.0
    container_name: couchbase1
    volumes:
      - ~/couchbase/node1:/opt/couchbase/var
    networks:
      couchbase-net:
        ipv4_address: 172.20.0.11

  couchbase2:
    image: couchbase:community-6.6.0
    container_name: couchbase2
    volumes:
      - ~/couchbase/node2:/opt/couchbase/var
    networks:
      couchbase-net:
        ipv4_address: 172.20.0.12

  couchbase3:
    image: couchbase:community-6.6.0
    container_name: couchbase3
    volumes:
      - ~/couchbase/node3:/opt/couchbase/var
    networks:
      couchbase-net:
        ipv4_address: 172.20.0.13

    ports:
      - 8091:8091
      - 8092:8092 
      - 8093:8093 
      - 11210:11210

networks:
  couchbase-net:
    ipam:
      config:
        - subnet: 172.20.0.0/24

I can connect to the web UI (http://192.168.0.241:8091) from my desktop without any issues. However when I query via the node sdk from my desktop I get a connection timeout error. If I try to query from the laptop itself I have no issues. The following is the connection code:

const cluster = new Couchbase.Cluster("couchbase://192.168.0.241", {
	username: 'Administrator',
	password: 'xxx'
});

And the query code:


exports.getById = async function(req, res) {
	const key = req.params.key;
	
	try {
		await cb.getCollection().get(key, (error, result) => {
			if (error) {
				console.log(error);
				res.status(404).send('Document not found');
			}
			else {
				res.send(result.value);
			}
		});
	}
	catch (error) {
		console.log('Error: ' + error);
		res.status(500).send(error);
	}
}

Thanks