2016-03-25 46 views
0
Docker version: 1.10 
Env : CentOS 7 

Kullandıktan sonra Oracle Veritabanı ile bağlantı kurulamıyor Yerel makinemde, uygulamamı docker görüntüsüne aktarıyorum ve sonra tar dosyası olarak kaydedin. Ardından tar dosyasını test ortamına kopyalayın ve görüntü ile oluşturma kapsayıcısını bu görüntüye yüklemek için docker yükleme komutunu çalıştırın. Ancak, uygulama çalışırken, yerel makinemde asla gerçekleşmeyen Veritabanı'na bağlanamaz. Test ortamı da DB sunucusuna ping atabiliyor.Docker kapsayıcısı

Hata mesajı aşağıdadır. Veritabanı veya herhangi bir öneri bağlamak için docker için herhangi bir port açmak gerekli olup olmadığını bana söyleyebilir misiniz?

java.sql.SQLRecoverableException: IO Error: Connection reset 
      at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:498) 
      at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConn`enter code here`ection.java:553) 
      at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254) 
      at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
      at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528) 
      at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280) 
      at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207) 
      at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:151) 
      at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:89) 
      at oracle.jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1629) 
      at oracle.jdbc.pool.OracleImplicitConnectionCache.makeOneConnection(OracleImplicitConnectionCache.java:519) 
      at oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:479) 
      at oracle.jdbc.pool.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:360) 
      at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:395) 
      at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:179) 
      at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:157) 


Below is the docker file: 

    enter code here 

FROM centos 
EXPOSE 8001 9001 
RUN yum update -y && \ 
    curl --insecure --junk-session-cookies --location --remote-name --silent --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u74-b02/jdk-8u74-linux-x64.rpm && \ 
    yum localinstall -y jdk-8u74-linux-x64.rpm && \ 
    rm jdk-8u74-linux-x64.rpm && \ 
    yum clean all 
ENV JAVA_HOME=/usr/java/default \ 
    LANG=en_US.UTF-8 \ 
    LC_ALL=en_US.UTF-8 
WORKDIR /MCI3 
COPY MCI3/ /MCI3/ 
CMD ["java","-jar","/MCI3/cs-mci3.jar", "-Xmx100m"] 

------------------------------------------------------------ 
In my local machine: 
docker build -t [IMAGE_NAME] . 
docker save -o [TAR_FILE_NAME] [IMAGE_NAME:IMAGE_TAG] 

After create the tar file then copy it to the testing env(no any internet) : 

sudo docker load --input [PATH_TO_TAR_FILE] 
sudo docker run -p 9001:9001 -p 8001:8001 --name cs-mci3_container cs-mci3_image 
+0

yüzden size 'Dockerfile' ve aynı zamanda komuta run'' liman işçisi bize gösterebilir, başvurunuz kaba oracle dabase (o da kabı liman işçisi nedir?) Bağlantısı mı? – BMW

+0

Docker dosyasında herhangi bir Oracle veritabanı ayarı yapmadım. Uygulama, veritabanı örneğini başlatmak için yay çerçevesi kullanıldı. Ve yerel vm'de db'ye bağlanabilir. Docker kabında connect db için herhangi bir konfigürasyona ihtiyaç var mı? –

cevap

0

Lütfen aşağıdaki şekilde CMD'yi birini veya her ikisini birden deneyin.

  1. CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/MCI3/cs-mci3.jar", "-Xmx100m"]

  2. seti liman işçisi --mtu=1400.