skip to Main Content

I’m using Spring Cloud Config Server with a simple Spring Boot project. So I have a service for Spring Cloud Config Service and another simple service that connect to Spring Cloud Config Service to get some properties like database credentials and other properties. If I test it on local everything works good, but if I try to start these 2 services as docker containers it isn’t working. The Spring Cloud Config Service starts fine, and then I try to start the other service and it’s not working. It cannot connect to the config server and I don’t understand why.

spring cloud config server application.yml:

server:
  port: 8888

spring:
  application:
    name: spring-cloud-config-server
  cloud:
    config:
      label: master
      server:
        git:
          uri: https://github.com/...
  security:
    user:
      name: gigi
      password: $2a$10$QpA9JjOQiciPKokmwlxEYOPtZLIHfTFECvDeL8in.ZGWVUY24Cx/a

spring cloud config server pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.gab.microservices</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-cloud-config-server</name>
    <description>Centralized Configuration Server</description>
    <properties>
        <java.version>11</java.version>
        <spring-cloud.version>2021.0.3</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <image>
                        <name>eveningstar33/mmv2-${project.artifactId}:${project.version}</name>
                        <pullPolicy>IF_NOT_PRESENT</pullPolicy>
                    </image>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

I start the spring cloud config server as a docker container on local:

$ docker run -p 8888:8888 eveningstar33/mmv2-spring-cloud-config-server:0.0.1-SNAPSHOT
Setting Active Processor Count to 4
Calculating JVM memory based on 4828376K available memory
`For more information on this calculation, see https://paketo.io/docs/reference/java-reference/#memory-calculator
Calculated JVM Memory Configuration: -XX:MaxDirectMemorySize=10M -Xmx4211948K -XX:MaxMetaspaceSize=104427K -XX:ReservedCodeCacheSize=240M -Xss1M (Total Memory: 4828376K, Thread Count: 250, Loaded Class Count: 16023, Headroom: 0%)
Enabling Java Native Memory Tracking
Adding 127 container CA certificates to JVM truststore
Spring Cloud Bindings Enabled
Picked up JAVA_TOOL_OPTIONS: -Djava.security.properties=/layers/paketo-buildpacks_bellsoft-liberica/java-security-properties/java-security.properties -XX:+ExitOnOutOfMemoryError -XX:ActiveProcessorCount=4 -XX:MaxDirectMemorySize=10M -Xmx4211948K -XX:MaxMetaspaceSize=104427K -XX:ReservedCodeCacheSize=240M -Xss1M -XX:+UnlockDiagnosticVMOptions -XX:NativeMemoryTracking=summary -XX:+PrintNMTStatistics -Dorg.springframework.cloud.bindings.boot.enable=true

  .   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _    
( ( )___ | '_ | '_| | '_ / _` |    
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |___, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.7.0)

2022-06-26 15:40:12.369  INFO 1 --- [           main] g.m.s.SpringCloudConfigServerApplication : Starting SpringCloudConfigServerApplication v0.0.1-SNAPSHOT using Java 11.0.15.1 on 058d17df827b with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
2022-06-26 15:40:12.376  INFO 1 --- [           main] g.m.s.SpringCloudConfigServerApplication : No active profile set, falling back to 1 default profile: "default"
2022-06-26 15:40:14.409  INFO 1 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=e8bf239d-fb47-310c-99e0-8c15e49dfb55
2022-06-26 15:40:15.015  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8888 (http)
2022-06-26 15:40:15.034  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-06-26 15:40:15.035  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.63]
2022-06-26 15:40:15.158  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-06-26 15:40:15.158  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2630 ms
2022-06-26 15:40:16.137  INFO 1 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@5dbbb292, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@613f7eb7, org.springframework.security.web.context.SecurityContextPersistenceFilter@1ac730cd, org.springframework.security.web.header.HeaderWriterFilter@b5b9333, org.springframework.security.web.csrf.CsrfFilter@30bbcf91, org.springframework.security.web.authentication.logout.LogoutFilter@487cd177, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@3375ebd3, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@6467ddc7, org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@565aa4ac, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@40717ed, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@5aa62ee7, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1f7cec93, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@587c5c1, org.springframework.security.web.session.SessionManagementFilter@38588dea, org.springframework.security.web.access.ExceptionTranslationFilter@79627d27, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2199e845]
2022-06-26 15:40:17.116  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8888 (http) with context path ''
2022-06-26 15:40:17.148  INFO 1 --- [           main] g.m.s.SpringCloudConfigServerApplication : Started SpringCloudConfigServerApplication in 5.731 seconds (JVM running for 6.46)

And I can do a request at the url http://localhost:8888/currency-exchange/master and these are the informations:

{
"name": "currency-exchange",
"profiles": [
"master"
],
"label": null,
"version": "7b6626f321d73191ca6cfc55f518f7158e1a2313",
"state": null,
"propertySources": [
{
"name": "https://github.com/...
"source": {
"spring.cloud.config.label": "master",
"spring.cloud.config.uri": "http://localhost:8888",
"spring.cloud.config.username": "gigi",
"spring.cloud.config.password": "test1234",
"spring.datasource.url": "jdbc:mysql://docker-mysql:3306/testdb",
"spring.datasource.username": "root",
"spring.datasource.password": "test1234",
"spring.security.user.name": "admin",
"spring.security.user.password": "$2a$10$QpA9JjOQiciPKokmwlxEYOPtZLIHfTFECvDeL8in.ZGWVUY24Cx/a"
}
}
]
}

After that I try to start the other service and I get connection refused:

$ docker run -p 8000:8000 eveningstar33/mmv2-currency-exchange-service:0.0.1-SNAPSHOT
Setting Active Processor Count to 4
Calculating JVM memory based on 4502728K available memory
`For more information on this calculation, see https://paketo.io/docs/reference/java-reference/#memory-calculator
Calculated JVM Memory Configuration: -XX:MaxDirectMemorySize=10M -Xmx3840722K -XX:MaxMetaspaceSize=150005K -XX:ReservedCodeCacheSize=240M -Xss1M (Total Memory: 4502728K, Thread Count: 250, Loaded Class Count: 24070, Headroom: 0%)
Enabling Java Native Memory Tracking
Adding 127 container CA certificates to JVM truststore
Spring Cloud Bindings Enabled
Picked up JAVA_TOOL_OPTIONS: -Djava.security.properties=/layers/paketo-buildpacks_bellsoft-liberica/java-security-properties/java-security.properties -XX:+ExitOnOutOfMemoryError -XX:ActiveProcessorCount=4 -XX:MaxDirectMemorySize=10M -Xmx3840722K -XX:MaxMetaspaceSize=150005K -XX:ReservedCodeCacheSize=240M -Xss1M -XX:+UnlockDiagnosticVMOptions -XX:NativeMemoryTracking=summary -XX:+PrintNMTStatistics -Dorg.springframework.cloud.bindings.boot.enable=true

  .   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _    
( ( )___ | '_ | '_| | '_ / _` |    
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |___, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.7.0)

2022-06-26 15:47:01.483  INFO [currency-exchange,,] 1 --- [           main] g.m.c.CurrencyExchangeServiceApplication : Starting CurrencyExchangeServiceApplication v0.0.1-SNAPSHOT using Java 11.0.15.1 on 08358a26aa24 with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
2022-06-26 15:47:01.490  INFO [currency-exchange,,] 1 --- [           main] g.m.c.CurrencyExchangeServiceApplication : No active profile set, falling back to 1 default profile: "default"
2022-06-26 15:47:01.591  INFO [currency-exchange,,] 1 --- [           main] o.s.c.c.c.ConfigServerConfigDataLoader   : Fetching config from server at : http://localhost:8888
2022-06-26 15:47:01.592  INFO [currency-exchange,,] 1 --- [           main] o.s.c.c.c.ConfigServerConfigDataLoader   : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available
2022-06-26 15:47:01.592  WARN [currency-exchange,,] 1 --- [           main] o.s.c.c.c.ConfigServerConfigDataLoader   : Could not locate PropertySource ([ConfigServerConfigDataResource@4aeaadc1 uris = array<String>['http://localhost:8888'], optional = true, profiles = list['default']]): I/O error on GET request for "http://localhost:8888/currency-exchange/default/master": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
2022-06-26 15:47:04.088  INFO [currency-exchange,,] 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2022-06-26 15:47:04.511  INFO [currency-exchange,,] 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 403 ms. Found 1 JPA repository interfaces.
2022-06-26 15:47:05.655  INFO [currency-exchange,,] 1 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=14f08c66-f514-36a3-965b-ebd56a472fd5
2022-06-26 15:47:07.788  INFO [currency-exchange,,] 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8000 (http)
2022-06-26 15:47:07.814  INFO [currency-exchange,,] 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-06-26 15:47:07.816  INFO [currency-exchange,,] 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.63]
2022-06-26 15:47:08.034  INFO [currency-exchange,,] 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-06-26 15:47:08.034  INFO [currency-exchange,,] 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 6437 ms
2022-06-26 15:47:08.484 ERROR [currency-exchange,,] 1 --- [           main] o.s.b.web.embedded.tomcat.TomcatStarter  : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'webMvcMetricsFilter' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]: Unsatisfied dependency expressed through method 'webMvcMetricsFilter' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'simpleMeterRegistry' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/simple/SimpleMetricsExportAutoConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourcePoolMetadataMeterBinder' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/jdbc/DataSourcePoolMetricsAutoConfiguration$DataSourcePoolMetadataMetricsConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourcePoolMetadataMeterBinder' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
2022-06-26 15:47:08.521  INFO [currency-exchange,,] 1 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2022-06-26 15:47:08.547  WARN [currency-exchange,,] 1 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
2022-06-26 15:47:08.618  INFO [currency-exchange,,] 1 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-06-26 15:47:08.663 ERROR [currency-exchange,,] 1 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   :

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
        If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
        If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).


Native Memory Tracking:

Total: reserved=4647673752, committed=360292248
-                 Java Heap (reserved=3934257152, committed=181403648)
                            (mmap: reserved=3934257152, committed=181403648)

-                     Class (reserved=192943772, committed=52971164)
                            (classes #9559)
                            (  instance classes #8950, array classes #609)
                            (malloc=1590940 #24005)
                            (mmap: reserved=191352832, committed=51380224)
                            (  Metadata:   )
                            (    reserved=46137344, committed=44564480)
                            (    used=43492240)
                            (    free=1072240)
                            (    waste=0 =0.00%)
                            (  Class space:)
                            (    reserved=145215488, committed=6815744)
                            (    used=6117872)
                            (    free=697872)
                            (    waste=0 =0.00%)

-                    Thread (reserved=20055984, committed=1083312)
                            (thread #19)
                            (stack: reserved=19968000, committed=995328)
                            (malloc=68136 #116)
                            (arena=19848 #35)

-                      Code (reserved=254867960, committed=18545144)
                            (malloc=1235448 #5350)
                            (mmap: reserved=253632512, committed=17309696)

-                        GC (reserved=190061883, committed=50801979)
                            (malloc=9997627 #7092)
                            (mmap: reserved=180064256, committed=40804352)

-                  Compiler (reserved=11178686, committed=11178686)
                            (malloc=35638 #532)
                            (arena=11143048 #15)

-                  Internal (reserved=389891, committed=389891)
                            (malloc=357123 #1153)
                            (mmap: reserved=32768, committed=32768)

-                    Symbol (reserved=13126528, committed=13126528)
                            (malloc=11383312 #133295)
                            (arena=1743216 #1)

-    Native Memory Tracking (reserved=2835432, committed=2835432)
                            (malloc=8120 #101)
                            (tracking overhead=2827312)

-               Arena Chunk (reserved=27594984, committed=27594984)
                            (malloc=27594984)

-                   Tracing (reserved=97, committed=97)
                            (malloc=97 #5)

-                   Logging (reserved=4572, committed=4572)
                            (malloc=4572 #192)

-                 Arguments (reserved=19067, committed=19067)
                            (malloc=19067 #495)

-                    Module (reserved=172456, committed=172456)
                            (malloc=172456 #1850)

-              Synchronizer (reserved=157096, committed=157096)
                            (malloc=157096 #1302)

-                 Safepoint (reserved=8192, committed=8192)
                            (mmap: reserved=8192, committed=8192)

So it cannot connect to the config server, and because of that it cannot connect to the database and it cracks.

currency-exchange service application.yml:
spring:
  application:
    name: currency-exchange
  config:
    import: optional:configserver:http://localhost:8888
  cloud:
    config:
      label: master
      uri: http://localhost:8888
      username: gigi
      password: test1234
  jpa:
    show-sql: true

server:
  port: 8000

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.gab.microservices</groupId>
    <artifactId>currency-exchange-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>currency-exchange-service</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
        <spring-cloud.version>2021.0.3</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

        <dependency>
            <groupId>io.github.resilience4j</groupId>
            <artifactId>resilience4j-spring-boot2</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

<!--        <dependency>-->
<!--            <groupId>com.h2database</groupId>-->
<!--            <artifactId>h2</artifactId>-->
<!--            <scope>runtime</scope>-->
<!--        </dependency>-->

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <image>
                        <name>eveningstar33/mmv2-${project.artifactId}:${project.version}</name>
                        <pullPolicy>IF_NOT_PRESENT</pullPolicy>
                    </image>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Any feedback will be apreciated! Thank you!

3

Answers


  1. try adding the jdbc driver as a dependency on your pom.xml, I don’t see it in your dependencies.

    It seems like the error is that it’s not finding a driver class in your dependencies, so I’d start looking there.

    Login or Signup to reply.
  2. Every container is another host. You can’t use loopback address for inter-container communication. The easiest way is to use docker-compose. It will configure dns names, and you will be able to use them for inter-container communication. Like http://config-server:8888 , http://currency-exchange:8000 , jdbc:mysql://docker-mysql:3306/testdb

    maybe that answer will be usefull
    Docker how to send request(curl – get, post) one container to another container

    and you should check runtime classpath for db driver, like @jeekiii said.

    i have not enought reputation for commenting, but i can edit my answer, if you comment it with any question.

    Login or Signup to reply.
  3. If you generate the docker images and start all of them individually, they can’t communicate with each as each docker container will have it’s own network. So that’s why we need to use docker compose, when we want our containers to communicate with each other.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search