Dockerfile中的Jboss 5.1 – 如何在浏览器中访问服务器

我有一个dockerfile,看起来像这样:

FROM ubuntu:trusty RUN DEBIAN_FRONTEND=noninteractive apt-get -yq upgrade # Update to latest RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" > /etc/apt/sources.list.d/webupd8team-java.list RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C2518248EEA14886 RUN apt-get update RUN apt-get upgrade -y # Install basics # RUN apt-get install -y python-software-properties software-properties-common unzip RUN apt-get install -y unzip # Install Java, auto-accepting the license # RUN add-apt-repository -y ppa:webupd8team/java # RUN apt-get update # RUN echo oracle-java6-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections # RUN apt-get install -y oracle-java6-installer RUN echo oracle-java6-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections # Install different Java versions RUN DEBIAN_FRONTEND=noninteractive apt-get install -yq oracle-java6-installer # Set environment variables pointing to different Java installations ENV JAVA_HOME /usr/lib/jvm/java-6-oracle ENV JAVA6_HOME /usr/lib/jvm/java-6-oracle # Ensure Java 6 is the default version RUN update-java-alternatives -s java-6-oracle # Install JBoss 5.1.0.GA RUN wget -O jboss.zip http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip/download RUN unzip jboss.zip && mv jboss-5.1.0.GA /opt RUN cd /opt/jboss-5.1.0.GA/bin && chmod +x *.sh CMD /opt/jboss-5.1.0.GA/bin/run.sh # Clean-up to reduce the image size RUN apt-get clean EXPOSE 8080 

我build立它比:

 sudo docker build -t dockerfile . 

一切都很好。 所以我启动服务器:

 sudo docker run -it --publish 127.0.0.1:8080:8080 dockerfile:latest 

我可以看到服务器正确启动

如果我inputurl127.0.0.1:8080我有一个错误的网站:

连接被重置 – 加载页面时重置与服务器的连接

我如何在浏览器中连接到服务器?

我的容器的检查如下所示:

 [{ "Args": [ "-c", "/opt/jboss-5.1.0.GA/bin/run.sh" ], "Config": { "AttachStderr": false, "AttachStdin": false, "AttachStdout": false, "Cmd": [ "/bin/sh", "-c", "/opt/jboss-5.1.0.GA/bin/run.sh" ], "CpuShares": 0, "Cpuset": "", "Domainname": "", "Entrypoint": null, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "JAVA_HOME=/usr/lib/jvm/java-6-oracle", "JAVA6_HOME=/usr/lib/jvm/java-6-oracle" ], "ExposedPorts": { "8080/tcp": {} }, "Hostname": "054aaccfd754", "Image": "dockerfile:latest", "Memory": 0, "MemorySwap": 0, "NetworkDisabled": false, "OnBuild": null, "OpenStdin": false, "PortSpecs": null, "SecurityOpt": null, "StdinOnce": false, "Tty": false, "User": "", "Volumes": null, "WorkingDir": "" }, "Created": "2014-11-27T11:35:34.538502513Z", "Driver": "aufs", "ExecDriver": "native-0.2", "HostConfig": { "Binds": null, "CapAdd": null, "CapDrop": null, "ContainerIDFile": "", "Devices": [], "Dns": null, "DnsSearch": null, "ExtraHosts": null, "Links": null, "LxcConf": [], "NetworkMode": "bridge", "PortBindings": { "8080/tcp": [ { "HostIp": "172.17.42.1", "HostPort": "8080" } ] }, "Privileged": false, "PublishAllPorts": false, "RestartPolicy": { "MaximumRetryCount": 0, "Name": "" }, "VolumesFrom": null }, "HostnamePath": "/var/lib/docker/containers/054aaccfd7544a0c14a9f53f94ea2be0c2d6d58437c5311f6507ce2e4466bfa7/hostname", "HostsPath": "/var/lib/docker/containers/054aaccfd7544a0c14a9f53f94ea2be0c2d6d58437c5311f6507ce2e4466bfa7/hosts", "Id": "054aaccfd7544a0c14a9f53f94ea2be0c2d6d58437c5311f6507ce2e4466bfa7", "Image": "f820f5fe9d26c8e896b9d902492ba66f8ed679792047c9c3147b7045df0ed98f", "MountLabel": "", "Name": "/sleepy_franklin", "NetworkSettings": { "Bridge": "docker0", "Gateway": "172.17.42.1", "IPAddress": "172.17.0.5", "IPPrefixLen": 16, "MacAddress": "02:42:ac:11:00:05", "PortMapping": null, "Ports": { "8080/tcp": [ { "HostIp": "172.17.42.1", "HostPort": "8080" } ] } }, "Path": "/bin/sh", "ProcessLabel": "", "ResolvConfPath": "/var/lib/docker/containers/054aaccfd7544a0c14a9f53f94ea2be0c2d6d58437c5311f6507ce2e4466bfa7/resolv.conf", "State": { "ExitCode": 0, "FinishedAt": "0001-01-01T00:00:00Z", "Paused": false, "Pid": 4236, "Restarting": false, "Running": true, "StartedAt": "2014-11-27T11:35:35.120814905Z" }, "Volumes": {}, "VolumesRW": {} } 

jottrs回答后编辑:日志说:

 .... 11:36:32,963 INFO [TomcatDeployment] deploy, ctxPath=/admin-console 11:36:33,067 INFO [config] Initializing Mojarra (1.2_12-b01-FCS) for context '/admin-console' 11:36:38,001 INFO [TomcatDeployment] deploy, ctxPath=/ 11:36:38,068 INFO [TomcatDeployment] deploy, ctxPath=/jmx-console 11:36:38,232 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080 11:36:38,314 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009 11:36:38,341 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 1m:1s:805ms 

而已….

因为Jottrs知识产权提及:据我了解,我用我的服务器绑定到127.0.0.1:8080启动命令:

 sudo docker run -it --publish 127.0.0.1:8080:8080 dockerfile:latest 

如果我看看ifconfig我有docker文件运行在:

 $ ifconfig docker0 Link encap:Ethernet Hardware Adresse 56:84:7a:fe:97:99 inet Adresse:172.17.42.1 Bcast:0.0.0.0 Maske:255.255.0.0 inet6-Adresse: fe80::5484:7aff:fefe:9799/64 Gültigkeitsbereich:Verbindung UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 RX-Pakete:86 Fehler:0 Verloren:0 Überläufe:0 Fenster:0 TX-Pakete:101 Fehler:0 Verloren:0 Überläufe:0 Träger:0 Kollisionen:0 Sendewarteschlangenlänge:0 RX-Bytes:4983 (4.9 KB) TX-Bytes:12056 (12.0 KB) 

但与$ sudo docker inspect --format "{{ .NetworkSettings.IPAddress }}" 054我得到172.17.0.5

但是我也没有在我的浏览器中使用URL 172.17.0.5:8080或者URL 172.17.42.1:8080

另外,如果我用$ sudo docker run -d --publish 172.17.42.1:8080:8080 dockerfile:latest (ifconfig IP)我不会得到连接(并且对日志仍然没有反应)

 $ sudo docker exec -it 228 bash root@22870ce4265e:/# cat /etc/hosts 172.17.0.6 22870ce4265e 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 

问题是JBoss不是Docker。 JBoss默认情况下只监听localhost:8080 Jboss只能在localhost:8080上运行,但是当被ip调用时我没有回应 (我不是JBoss的人,所以你必须尝试“-b 0.0.0.0”或者提供一个服务器。 xml通过在您的Dockerfile添加)。

当你运行(在我的情况下,我叫容器jboss)

 sudo docker exec jboss apt-get install curl -y sudo docker exec jboss curl localhost:8080 

您注意到JBoss运行并且可访问。

Interesting Posts