我正试图在windowsservercore映像上的windows docker容器上启动一个tomee服务器 . 当我尝试启动容器时,我得到的地址已经在使用,但无论我将tomee服务器切换到哪个地址,我都会得到同样的错误 .

这让我觉得我必须启动服务器的两个实例,或同一个端口上的其他东西..但我不认为这种情况发生在任何明显的地方 .

Dockerfile:

FROM microsoft/windowsservercore

COPY ./setup/jdk-8u161-windows-x64.exe c:/setup/jdk-8u161-windows-x64.exe
COPY ./setup/jre.cfg c:/setup/jre.cfg
COPY ./setup/jdk.cmd c:/setup/jdk.cmd

RUN powershell.exe -command ./setup/jdk.cmd

RUN dir "c:/Program Files/Java/"

ENV JAVA_HOME="c:/Program Files/Java/jdk1.8.0_161"

COPY ./setup/tomee/ c:/tomee/

RUN /tomee/bin/service.bat install

ENV CLASSPATH="c:/Program Files/Java/jdk1.8.0_161/bin"
ENV CATALINA_HOME="c:/tomee"

#Copy Server Configs
ADD tomee/tomcat-users.xml c:/tomee/conf/
ADD tomee/context.xml c:/tomee/conf/
ADD tomee/server.xml c:/tomee/conf/

CMD ["/tomee/bin/catalina.bat", "run"]

server.xml中

<?xml version="1.0" encoding="UTF-8"?>
<Server port="18005" shutdown="SHUTDOWN">
    <Listener className="org.apache.tomee.catalina.ServerListener"/>
    <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
    <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml"/>
    </GlobalNamingResources>
    <Service name="Catalina">
        <Connector port="18080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="18443" xpoweredBy="false" server="Apache TomEE"/>
        <Connector port="18009" protocol="AJP/1.3" redirectPort="18443"/>
        <Engine name="Catalina" defaultHost="localhost">

            <Realm className="org.apache.catalina.realm.LockOutRealm">

            </Realm>

            <Host name="localhost" appBase="webapps"
                  unpackWARs="true" autoDeploy="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                       prefix="localhost_access_log" suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
            </Host>
        </Engine>
    </Service>
</Server>

错误:

07-May-2018 15:56:57.339 SEVERE [main] sun.reflect.NativeMethodAccessorImpl.invoke无法初始化与ProtocolHandler相关的终点[“http-nio-18080”] java.net.BindException:地址已在使用中:在sun.nio.ch.Net.bind(Net.java:433)sun.nio.ch.Net.bind(Net.java:433)的sun.nio.ch.Net.bind0(本地方法)绑定sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)位于org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint . )的sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) . 的java:228)在org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866)在org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:213)在org.apache .coyote.AbstractProtocol.init(AbstractProtocol.java:575)org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65)at org.apache.catalina.connector.Connector.initInternal(Connector.java:944) )org.apache.catalina.util.LifecycleBase.init(Lifecy cleBase.java:107)在org.apache.catalina.core.StandardService.initInternal(StandardService.java:549)在org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)在org.apache.catalina .core.StandardServer.initInternal(StandardServer.java:873)在org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)在org.apache.catalina.startup.Catalina.load(Catalina.java:606 )atg.apache.catalina.startup.Catalina.load(Catalina.java:629)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun . 在org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)的org.apache.catal.Startod.invoke(Method.java:498)上反映.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) .apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)07-May-2018 15:56:57.354 SEVERE [main] sun.reflect.NativeMethodAccessorImpl.invoke初始化连接器失败[连接器[HTTP / 1] .1-18080]] org.apache.catalina.LifecycleException:无法在org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)初始化组件[Connector [HTTP / 1.1-18080]] . 位于org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)的apache.catalina.core.StandardService.initInternal(StandardService.java:549)位于org.apache.catalina.core.StandardServer.initInternal(StandardServer . 的java:873)在org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)在org.apache.catalina.startup.Catalina.load(Catalina.java:606)在org.apache.catalina.startup .atatina.load(Catalina.java:629)位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)的sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java) :43)在org.apache.catalina.startup.Boo的org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)的java.lang.reflect.Method.invoke(Method.java:498) tstrap.main(Bootstrap.java:494)引起:org.apache.catalina.LifecycleException:在org.apache.catalina的org.apache.catalina.connector.Connector.initInternal(Connector.java:946)中,协议处理程序初始化失败.util.LifecycleBase.init(LifecycleBase.java:107)... 12更多引起:java.net.BindException:已经在使用的地址:在sun的sun.nio.ch.Net.bind0(Native Method)绑定 . nio.ch.Net.bind(Net.java:433)at sun.nio.ch.Net.bind(Net.java:425)at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)at sun .nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)在org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:228)在org.apache.tomcat.util.net.AbstractEndpoint.init (AbstractEndpoint.java:866)在org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:213)在org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575)在org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65)at org.apache.catalina.connector.Connector.initInternal(Connector.java:944)... 13 more 07-May-2018 15:56 :57.354 INFO [main] sun.reflect.DelegatingMethodAccessorImpl.invoke初始化ProtocolHandler [“ajp-nio-18009”] 07-May-2018 15:56:57.370 SEVERE [main] sun.reflect.NativeMethodAccessorImpl.invoke初始化终点失败与ProtocolHandler相关联[“ajp-nio-18009”] java.net.BindException:已在使用的地址:sun.nio.ch.Net.bind(net)上的sun.nio.ch.Net.bind0(本地方法)绑定.java:433)sun.nio.ch.Net.bind(Net.java:425)at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)at sun.nio.ch.ServerSocketAdaptor.bind( ServerSocketAdaptor.java:74)org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:228)org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866)at org .apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndp oint.java:213)org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575)org.apache.catalina.connector.Connector.initInternal(Connector.java:944)atg.apache.catalina.util .LifecycleBase.init(LifecycleBase.java:107)位于org.apache.catalina.core.tandardService( . org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:873)org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)org.apache.catalina.startup.Catalina.load( Catalina.java:606)org.apache.catalina.startup.Catalina.load(Catalina.java:629)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62)在org.apache.catalina.startup.Bootstrap.load(Boo)的java.lang.reflect.Method.invoke(Method.java:498)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) tstrap.java:311)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)07-May-2018 15:56:57.370 SEVERE [main] sun.reflect.NativeMethodAccessorImpl.invoke初始化连接器失败[Connector [AJP / 1.3-18009]] org.apache.catalina.LifecycleException:无法在org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)初始化组件[Connector [AJP / 1.3-18009]] )org.apache.catalina.core.StandardService.initInternal(StandardService.java:549)org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)org.apache.catalina.core.StandardServer . init orternal(StandardServer.java:873)org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)org.apache.catalina.startup.Catalina.load(Catalina.java:606)atg.apache .catalina.startup.Catalina.load(Catalina.java:629)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMeth位于org.apache的org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)的java.lang.reflect.Method.invoke(Method.java:498)中的odAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) .catalina.startup.Bootstrap.main(Bootstrap.java:494)引起:org.apache.catalina.LifecycleException:协议处理程序初始化在org.apache.catalina.connector.Connector.initInternal(Connector.java:946)处失败org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)... 12更多引起:java.net.BindException:地址已在使用中:bind at sun.nio.ch.Net.bind0(Native方法)sun.nio.ch.Net.bind(Net.java:433)at sun.nio.ch.Net.bind(Net.java:425)at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java) :223)位于org.apache.tomcat.util的org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:228)的sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) . net.AbstractEndpoint.init(AbstractEndpoint.java:866)at org.apache.tomcat.util.net.Abstrac org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575)中的tJsseEndpoint.init(AbstractJsseEndpoint.java:213)位于org.apache.catalina.connector.Connector.initInternal(Connector.java:944)... 13更多