Docker update v29.6.2 - docker compose start container - network unreachable

Hi all,

please help me with the following Problem:

I setup a container on a VM with Ubuntu 24.04 LTS with a rootless docker daemon v26.6.0. Then I created a docker-compose.yaml for keycloak. Everything was working as expected. Then I made the update of the docker daemon to version 26.6.1. Again everything is working as expected. Last week came the update of the docker daemon to version 26.6.2. This time keycloak won’t start with the following error message:

" Caused by: java.net.SocketException: Network is unreachable"

So I made a docker inspect on the container:

        "NetworkSettings": {
            "SandboxID": "",
            "SandboxKey": "",
            "Ports": {},
            "Networks": {}
        },

The NetworkSettings-part seems to be empty. I have a similar container on another vm and there the NetworkSetting are filled with elements. There the network is available with the same settings.

So I looked for the available networks:

NETWORK ID     NAME                   DRIVER    SCOPE 
f891ceb6d02c   bridge                 bridge    local 
ac7d4b95de01   host                   host      local 
541b8b8cceb8   keycloak-tst_default   bridge    local 
5b3662cac329   none                   null      local 

The network keycloak-tst_default is available.

The network doesn’t get attached to the container since the update to docker daemon v26.6.2.

Here is the docker-compose.yaml file:

name: keycloak-tst

services:
  keycloak:
    image: quay.io/keycloak/keycloak:${TAG_KC}
    command: start-dev
    environment:
      KC_HEALTH_ENABLED: 'true'
      KC_DB: postgres
      KC_DB_URL: ${DB_URL}
      KC_DB_USERNAME: ${DB_USER}
      KC_DB_PASSWORD: ${DB_PW}
      KC_HTTPS_CERTIFICATE_FILE: ${HTTPS_CERTIFICATE_FILE}
      KC_HTTPS_CERTIFICATE_KEY_FILE: ${HTTPS_CERTIFICATE_KEY_FILE}
      KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_ADMIN}
      KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_ADMIN_PW}
    ports:
      - "80:8080"
      - "443:8443"
      - "9000:9000"

I already made a:

docker system prune -a
docker compose up --build -d

But that didn’t solve the problem.

I have no further ideas.

Please help.

Thanx for any help in advance.

Regards

Andreas

I’m going to test it on a VM, including the upgrade from the working version to the non-working version. Can you share the output of the following commands until then?

docker info
docker version

Remove any private details from the output like username or private registry addresses.

Some other things you could test until I can come back with test results:

I tested the upgrade with a simple nginx container started in a composer poject. Everything worked, but if you had different settings for rootlesskit, for example you used a different network driver which is not supported now, that could break your upgrade. Try running this command and share the output please.

cat /proc/$(pidof rootlesskit)/cmdline | sed 's/\x00/ \\\n  /g'

This is my output by the way:

rootlesskit \
  --state-dir=/run/user/1000/dockerd-rootless \
  --net=gvisor-tap-vsock \
  --mtu=65520 \
  --slirp4netns-sandbox=auto \
  --slirp4netns-seccomp=auto \
  --disable-host-loopback \
  --port-driver=builtin \
  --copy-up=/etc \
  --copy-up=/run \
  --propagation=rslave \
  /usr/bin/dockerd-rootless.sh \

Hi rimelek, thank you for your quick response. Sorry for my late response. Here is my output of your cat-command:

rootlesskit \
  --state-dir=/run/user/1002/dockerd-rootless \
  --net=gvisor-tap-vsock \
  --mtu=65520 \
  --slirp4netns-sandbox=auto \
  --slirp4netns-seccomp=auto \
  --disable-host-loopback \
  --port-driver=builtin \
  --copy-up=/etc \
  --copy-up=/run \
  --propagation=rslave \
  --detach-netns \
  /usr/bin/dockerd-rootless.sh \

It looks similar. Meanwhile I tested if the Container could start with a comparable docker run command. That worked. So it seems to be a docker compose problem. And I think its more a Keycloak problem.

Here is the output of the docker compose command:

Attaching to keycloak-1
keycloak-1  | Appending additional Java properties to JAVA_OPTS
keycloak-1  | Updating the configuration and installing your custom providers, if any. Please wait.
keycloak-1  | 2026-07-22 13:41:11,789 INFO  [io.quarkus.deployment.QuarkusAugmentor] (main) Quarkus augmentation completed in 4581ms
keycloak-1  | Running the server in development mode. DO NOT use this configuration in production.
keycloak-1  | 2026-07-22 13:41:13,785 INFO  [org.infinispan.CONTAINER] (main) ISPN000974: Virtual threads support: enabled
keycloak-1  | 2026-07-22 13:41:13,891 WARN  [com.arjuna.ats.arjuna] (main) ARJUNA012210: Unable to use InetAddress.getLocalHost() to resolve address.
keycloak-1  | 2026-07-22 13:41:14,958 WARN  [org.hibernate.orm.jdbc.error] (JPA Startup Thread) HHH000247: ErrorCode: 0, SQLState: 08001
keycloak-1  | 2026-07-22 13:41:14,958 WARN  [org.hibernate.orm.jdbc.error] (JPA Startup Thread) The connection attempt failed.
keycloak-1  | 2026-07-22 13:41:14,958 WARN  [org.hibernate.orm.jdbc] (JPA Startup Thread) HHH100046: Could not obtain connection to query JDBC database metadata: org.hibernate.exception.JDBCConnectionException: Unable to obtain isolated JDBC connection [The connection attempt failed.] [n/a]
keycloak-1  | 	at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:80)
keycloak-1  | 	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:34)
keycloak-1  | 	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:115)
keycloak-1  | 	at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:101)
keycloak-1  | 	at org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.convert(JtaIsolationDelegate.java:228)
keycloak-1  | 	at org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.doTheWork(JtaIsolationDelegate.java:196)
keycloak-1  | 	at org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.lambda$delegateWork$0(JtaIsolationDelegate.java:75)
keycloak-1  | 	at org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.doInSuspendedTransaction(JtaIsolationDelegate.java:111)
keycloak-1  | 	at org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.delegateWork(JtaIsolationDelegate.java:72)
keycloak-1  | 	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:366)
keycloak-1  | 	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironment(JdbcEnvironmentInitiator.java:143)
keycloak-1  | 	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:120)
keycloak-1  | 	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:80)
keycloak-1  | 	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:133)
keycloak-1  | 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:260)
keycloak-1  | 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:235)
keycloak-1  | 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:212)
keycloak-1  | 	at org.hibernate.service.ServiceRegistry.requireService(ServiceRegistry.java:66)
keycloak-1  | 	at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:50)
keycloak-1  | 	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:139)
keycloak-1  | 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:244)
keycloak-1  | 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:212)
keycloak-1  | 	at org.hibernate.service.ServiceRegistry.requireService(ServiceRegistry.java:66)
keycloak-1  | 	at org.hibernate.boot.internal.SessionFactoryOptionsBuilder.<init>(SessionFactoryOptionsBuilder.java:273)
keycloak-1  | 	at io.quarkus.hibernate.orm.runtime.recording.PrevalidatedQuarkusMetadata.buildSessionFactoryOptionsBuilder(PrevalidatedQuarkusMetadata.java:70)
keycloak-1  | 	at io.quarkus.hibernate.orm.runtime.boot.FastBootEntityManagerFactoryBuilder.build(FastBootEntityManagerFactoryBuilder.java:94)
keycloak-1  | 	at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.createEntityManagerFactory(FastBootHibernatePersistenceProvider.java:90)
keycloak-1  | 	at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:90)
keycloak-1  | 	at io.quarkus.hibernate.orm.runtime.JPAConfig$LazyPersistenceUnit.get(JPAConfig.java:178)
keycloak-1  | 	at io.quarkus.hibernate.orm.runtime.JPAConfig$1.run(JPAConfig.java:65)
keycloak-1  | 	at java.base/java.lang.Thread.run(Thread.java:1583)
keycloak-1  | Caused by: org.postgresql.util.PSQLException: The connection attempt failed.
keycloak-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:385)
keycloak-1  | 	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:57)
keycloak-1  | 	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:290)
keycloak-1  | 	at org.postgresql.Driver.makeConnection(Driver.java:448)
keycloak-1  | 	at org.postgresql.Driver.connect(Driver.java:298)
keycloak-1  | 	at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:225)
keycloak-1  | 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:664)
keycloak-1  | 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:645)
keycloak-1  | 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
keycloak-1  | 	at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:75)
keycloak-1  | 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
keycloak-1  | 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
keycloak-1  | 	... 1 more
keycloak-1  | Caused by: java.net.SocketException: Network is unreachable
keycloak-1  | 	at java.base/sun.nio.ch.Net.connect0(Native Method)
keycloak-1  | 	at java.base/sun.nio.ch.Net.connect(Net.java:601)
keycloak-1  | 	at java.base/sun.nio.ch.Net.connect(Net.java:590)
keycloak-1  | 	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583)
keycloak-1  | 	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
keycloak-1  | 	at java.base/java.net.Socket.connect(Socket.java:751)
keycloak-1  | 	at org.postgresql.core.PGStream.createSocket(PGStream.java:261)
keycloak-1  | 	at org.postgresql.core.PGStream.<init>(PGStream.java:122)
keycloak-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:146)
keycloak-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:289)
keycloak-1  | 	... 12 more
keycloak-1  | 
keycloak-1  | 2026-07-22 13:41:15,358 INFO  [org.hibernate.orm.jdbc.batch] (JPA Startup Thread) HHH100501: Automatic JDBC statement batching enabled (maximum batch size 32)
keycloak-1  | 2026-07-22 13:41:15,366 WARN  [org.hibernate.orm.dialect] (JPA Startup Thread) Persistence unit keycloak-default: Could not retrieve the database version to check it is at least 13.0.0
keycloak-1  | 2026-07-22 13:41:16,400 INFO  [com.arjuna.ats.jbossatx] (main) ARJUNA032014: Stopping transaction recovery manager
keycloak-1  | 2026-07-22 13:41:16,419 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to start server in (development) mode
keycloak-1  | 2026-07-22 13:41:16,419 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) Error details:: java.lang.RuntimeException: Failed to obtain JDBC connection
keycloak-1  | 	at org.keycloak.quarkus.runtime.storage.database.jpa.AbstractJpaConnectionProviderFactory.getConnection(AbstractJpaConnectionProviderFactory.java:66)
keycloak-1  | 	at org.keycloak.quarkus.runtime.storage.database.jpa.QuarkusJpaConnectionProviderFactory.checkEncoding(QuarkusJpaConnectionProviderFactory.java:420)
keycloak-1  | 	at org.keycloak.quarkus.runtime.storage.database.jpa.QuarkusJpaConnectionProviderFactory.checkPostgresEncoding(QuarkusJpaConnectionProviderFactory.java:407)
keycloak-1  | 	at org.keycloak.quarkus.runtime.storage.database.jpa.QuarkusJpaConnectionProviderFactory.checkUtf8Encoding(QuarkusJpaConnectionProviderFactory.java:391)
keycloak-1  | 	at org.keycloak.quarkus.runtime.storage.database.jpa.QuarkusJpaConnectionProviderFactory.postInit(QuarkusJpaConnectionProviderFactory.java:107)
keycloak-1  | 	at org.keycloak.services.DefaultKeycloakSessionFactory.initializeProviders(DefaultKeycloakSessionFactory.java:168)
keycloak-1  | 	at org.keycloak.services.DefaultKeycloakSessionFactory.initializeProviders(DefaultKeycloakSessionFactory.java:165)
keycloak-1  | 	at org.keycloak.services.DefaultKeycloakSessionFactory.initializeProviders(DefaultKeycloakSessionFactory.java:165)
keycloak-1  | 	at org.keycloak.services.DefaultKeycloakSessionFactory.initializeProviders(DefaultKeycloakSessionFactory.java:165)
keycloak-1  | 	at org.keycloak.services.DefaultKeycloakSessionFactory.initializeProviders(DefaultKeycloakSessionFactory.java:165)
keycloak-1  | 	at org.keycloak.services.DefaultKeycloakSessionFactory.initProviderFactories(DefaultKeycloakSessionFactory.java:142)
keycloak-1  | 	at org.keycloak.services.DefaultKeycloakSessionFactory.initProviderFactories(DefaultKeycloakSessionFactory.java:126)
keycloak-1  | 	at org.keycloak.quarkus.runtime.integration.QuarkusKeycloakSessionFactory.init(QuarkusKeycloakSessionFactory.java:87)
keycloak-1  | 	at org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication.initKeycloakSessionFactory(QuarkusKeycloakApplication.java:84)
keycloak-1  | 	at org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication.initKeycloakSessionFactory(QuarkusKeycloakApplication.java:47)
keycloak-1  | 	at org.keycloak.services.resources.KeycloakApplication.runBootstrap(KeycloakApplication.java:114)
keycloak-1  | 	at org.keycloak.services.resources.KeycloakApplication.startup(KeycloakApplication.java:103)
keycloak-1  | 	at org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication.onStartupEvent(QuarkusKeycloakApplication.java:70)
keycloak-1  | 	at org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication_Observer_onStartupEvent_ce5XOZYOfrotBEj0Q9isImsjqEg.notify(Unknown Source)
keycloak-1  | 	at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:366)
keycloak-1  | 	at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:348)
keycloak-1  | 	at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:81)
keycloak-1  | 	at io.quarkus.arc.runtime.ArcRecorder.fireLifecycleEvent(ArcRecorder.java:165)
keycloak-1  | 	at io.quarkus.arc.runtime.ArcRecorder.handleLifecycleEvents(ArcRecorder.java:115)
keycloak-1  | 	at io.quarkus.runner.recorded.LifecycleEventsBuildStep$startupEvent1144526294.deploy_0(Unknown Source)
keycloak-1  | 	at io.quarkus.runner.recorded.LifecycleEventsBuildStep$startupEvent1144526294.deploy(Unknown Source)
keycloak-1  | 	at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
keycloak-1  | 	at io.quarkus.runtime.Application.start(Application.java:112)
keycloak-1  | 	at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:127)
keycloak-1  | 	at io.quarkus.runtime.Quarkus.run(Quarkus.java:79)
keycloak-1  | 	at org.keycloak.quarkus.runtime.KeycloakMain.start(KeycloakMain.java:126)
keycloak-1  | 	at org.keycloak.quarkus.runtime.cli.Picocli.start(Picocli.java:918)
keycloak-1  | 	at org.keycloak.quarkus.runtime.cli.command.AbstractAutoBuildCommand.runCommand(AbstractAutoBuildCommand.java:112)
keycloak-1  | 	at org.keycloak.quarkus.runtime.cli.command.AbstractCommand.lambda$call$1(AbstractCommand.java:66)
keycloak-1  | 	at java.base/java.util.Optional.orElseGet(Optional.java:364)
keycloak-1  | 	at org.keycloak.quarkus.runtime.cli.command.AbstractCommand.call(AbstractCommand.java:65)
keycloak-1  | 	at org.keycloak.quarkus.runtime.cli.command.AbstractCommand.call(AbstractCommand.java:34)
keycloak-1  | 	at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
keycloak-1  | 	at picocli.CommandLine.access$1500(CommandLine.java:148)
keycloak-1  | 	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
keycloak-1  | 	at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
keycloak-1  | 	at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
keycloak-1  | 	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
keycloak-1  | 	at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
keycloak-1  | 	at picocli.CommandLine.execute(CommandLine.java:2174)
keycloak-1  | 	at org.keycloak.quarkus.runtime.cli.Picocli.execute(Picocli.java:198)
keycloak-1  | 	at org.keycloak.quarkus.runtime.cli.Picocli.parseAndRun(Picocli.java:187)
keycloak-1  | 	at org.keycloak.quarkus.runtime.KeycloakMain.main(KeycloakMain.java:101)
keycloak-1  | 	at org.keycloak.quarkus.runtime.KeycloakMain.main(KeycloakMain.java:81)
keycloak-1  | 	at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:86)
keycloak-1  | 	at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:37)
keycloak-1  | Caused by: org.postgresql.util.PSQLException: The connection attempt failed.
keycloak-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:385)
keycloak-1  | 	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:57)
keycloak-1  | 	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:290)
keycloak-1  | 	at org.postgresql.Driver.makeConnection(Driver.java:448)
keycloak-1  | 	at org.postgresql.Driver.connect(Driver.java:298)
keycloak-1  | 	at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:225)
keycloak-1  | 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:664)
keycloak-1  | 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:645)
keycloak-1  | 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
keycloak-1  | 	at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:75)
keycloak-1  | 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
keycloak-1  | 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
keycloak-1  | 	at java.base/java.lang.Thread.run(Thread.java:1583)
keycloak-1  | Caused by: java.net.SocketException: Network is unreachable
keycloak-1  | 	at java.base/sun.nio.ch.Net.connect0(Native Method)
keycloak-1  | 	at java.base/sun.nio.ch.Net.connect(Net.java:601)
keycloak-1  | 	at java.base/sun.nio.ch.Net.connect(Net.java:590)
keycloak-1  | 	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583)
keycloak-1  | 	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
keycloak-1  | 	at java.base/java.net.Socket.connect(Socket.java:751)
keycloak-1  | 	at org.postgresql.core.PGStream.createSocket(PGStream.java:261)
keycloak-1  | 	at org.postgresql.core.PGStream.<init>(PGStream.java:122)
keycloak-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:146)
keycloak-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:289)
keycloak-1  | 	... 12 more
keycloak-1  | 
keycloak-1 exited with code 1

Docker Compose is a client for the Docker API. Although calling the API wrong could probably cause strange issues, I don’t remember any case when the problem was not Docker itself.

What Docker Compose does is create a custom network for the compose project that you could also do.

docker network create test
docker run -d --name nginx --net test nginx

If the container has no network, that cannot be a Keycloak problem. Maybe you were unlucky and the created network for the project containing keycloak got a colliding network with any local network. Not sure what would happen with rootless Docker than, but that would explain even if every other project works, except that.

You could test that by leaving the compose project there with its network and run a copy of that project. Then you would get another network. You could also set the IP on the first project but running a copy without port forwarding seems to be easier.