In the process of setting up a Canton network using Dockerized containers encountering port conflicts during the setup

Setting up domain…
Successfully copied 2.05kB to domain:/tmp/domain.sc
Exception in thread “main” java.io.IOException: Failed to bind to address /0.0.0.0:19127
at io.grpc.netty.NettyServer.start(NettyServer.java:328)
at io.grpc.internal.ServerImpl.start(ServerImpl.java:183)
at io.grpc.internal.ServerImpl.start(ServerImpl.java:92)
at com.digitalasset.canton.environment.CantonNodeBootstrapCommon.(CantonNodeBootstrapCommon.scala:193)
at com.digitalasset.canton.environment.CantonNodeBootstrapBase.(CantonNodeBootstrap.scala:63)
at com.digitalasset.canton.domain.DomainNodeBootstrap.(DomainNodeBootstrap.scala:113)
at com.digitalasset.canton.domain.DomainNodeBootstrap$CommunityDomainFactory$.$anonfun$create$1(DomainNodeBootstrap.scala:693)
at scala.util.Either.map(Either.scala:382)
at com.digitalasset.canton.domain.DomainNodeBootstrap$CommunityDomainFactory$.create(DomainNodeBootstrap.scala:692)
at com.digitalasset.canton.environment.Environment.createDomain(Environment.scala:493)
at com.digitalasset.canton.environment.Environment.createDomain$(Environment.scala:488)
at com.digitalasset.canton.environment.CommunityEnvironment.createDomain(CommunityEnvironment.scala:34)
at com.digitalasset.canton.environment.Environment.$anonfun$domains$1(Environment.scala:267)
at com.digitalasset.canton.environment.ManagedNodes.$anonfun$start$4(Nodes.scala:130)
at scala.util.Either.map(Either.scala:382)
at com.digitalasset.canton.environment.ManagedNodes.$anonfun$start$3(Nodes.scala:129)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:62)
at scala.concurrent.package$.blocking(package.scala:124)
at com.digitalasset.canton.environment.ManagedNodes.start(Nodes.scala:122)
at com.digitalasset.canton.environment.ManagedNodes.$anonfun$attemptStartAll$1(Nodes.scala:98)
at scala.Function$.$anonfun$tupled$1(Function.scala:76)
at cats.instances.ListInstances$$anon$1.$anonfun$traverse_$3(list.scala:162)
at cats.Always.value(Eval.scala:192)
at cats.instances.ListInstances$$anon$1.traverse_(list.scala:169)
at cats.instances.ListInstances$$anon$1.traverse_(list.scala:40)
at cats.Foldable$Ops.traverse_(Foldable.scala:1055)
at cats.Foldable$Ops.traverse_$(Foldable.scala:1054)
at cats.Foldable$ToFoldableOps$$anon$6.traverse_(Foldable.scala:1080)
at com.digitalasset.canton.environment.ManagedNodes.attemptStartAll(Nodes.scala:98)
at com.digitalasset.canton.environment.Environment.$anonfun$startAndReconnect$2(Environment.scala:350)
at cats.data.Chain$.$anonfun$traverseViaChain$3(Chain.scala:1015)
at cats.Eval$.loop$1(Eval.scala:338)
at cats.Eval$.cats$Eval$$evaluate(Eval.scala:384)
at cats.Eval$FlatMap.value(Eval.scala:305)
at cats.data.Chain$.traverseViaChain(Chain.scala:1037)
at cats.instances.ListInstances$$anon$1.traverse(list.scala:130)
at cats.instances.ListInstances$$anon$1.traverse(list.scala:40)
at cats.Traverse$Ops.traverse(Traverse.scala:201)
at cats.Traverse$Ops.traverse$(Traverse.scala:200)
at cats.Traverse$ToTraverseOps$$anon$3.traverse(Traverse.scala:230)
at com.digitalasset.canton.environment.Environment.$anonfun$startAndReconnect$1(Environment.scala:350)
at com.digitalasset.canton.tracing.TraceContext$.withNewTraceContext(TraceContext.scala:97)
at com.digitalasset.canton.environment.Environment.startAndReconnect(Environment.scala:342)
at com.digitalasset.canton.environment.Environment.startAndReconnect$(Environment.scala:341)
at com.digitalasset.canton.environment.CommunityEnvironment.startAndReconnect(CommunityEnvironment.scala:34)
at com.digitalasset.canton.CantonAppDriver.delayedEndpoint$com$digitalasset$canton$CantonAppDriver$1(CantonAppDriver.scala:195)
at com.digitalasset.canton.CantonAppDriver$delayedInit$body.apply(CantonAppDriver.scala:29)
at scala.Function0.apply$mcV$sp(Function0.scala:42)
at scala.Function0.apply$mcV$sp$(Function0.scala:42)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
at scala.App.$anonfun$main$1(App.scala:98)
at scala.App.$anonfun$main$1$adapted(App.scala:98)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:575)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:573)
at scala.collection.AbstractIterable.foreach(Iterable.scala:933)
at scala.App.main(App.scala:98)
at scala.App.main$(App.scala:96)
at com.digitalasset.canton.CantonAppDriver.main(CantonAppDriver.scala:29)
at com.digitalasset.canton.CantonCommunityApp.main(CantonCommunityApp.scala)
Caused by: java.net.BindException: Address already in use
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:459)
at java.base/sun.nio.ch.Net.bind(Net.java:448)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227)
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:141)
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562)
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829) Docker-compose.yaml file is as follows version: ‘3.8’

services:
domain:
image: digitalasset/canton-open-source:2.7.9
container_name: domain
ports:
- “59127:19127”
- “58124:17123”
volumes:
- ./config/domain1.conf:/etc/canton/domain1.conf
- ./scripts:/scripts
- /home/simadmin/instrument_tokenization/scripts/canton-release:/opt/canton
environment:
- PATH=/opt/canton/bin:$PATH
command: [“daemon”, “-c”, “/etc/canton/domain1.conf”]

participant-admin:
image: digitalasset/canton-open-source:2.7.9
container_name: participant-admin
depends_on:
- domain
ports:
- “56002:16002”
- “59002:19002”
volumes:
- ./config/participant1-admin.conf:/etc/canton/participant1-admin.conf
- ./scripts:/scripts
- /home/simadmin/instrument_tokenization/scripts/canton-release:/opt/canton
environment:
- PATH=/opt/canton/bin:$PATH
command: [“daemon”, “-c”, “/etc/canton/participant1-admin.conf”]

participant-investor:
image: digitalasset/canton-open-source:2.7.9
container_name: participant-investor
depends_on:
- domain
ports:
- “54002:14002”
- “55002:15002”
volumes:
- ./config/participant2-investor.conf:/etc/canton/participant2-investor.conf
- ./scripts:/scripts
- /home/simadmin/instrument_tokenization/scripts/canton-release:/opt/canton
environment:
- PATH=/opt/canton/bin:$PATH
command: [“daemon”, “-c”, “/etc/canton/participant2-investor.conf”]

Welcome to the Daml community, @Sindhusha!

Is the above post a duplicate to Port Conflict during canton network setup with one domain and two participants? Can we delete this post?