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

标签 jboss docker jboss5.x

我有一个看起来像这样的 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

我构建它而不是:
sudo docker build -t dockerfile .

一切都很好。所以我启动服务器:
sudo docker run -it --publish 127.0.0.1:8080:8080 dockerfile:latest

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

如果我输入 URL 127.0.0.1:8080我有一个错误网站:

the connection was reset - the connection to the server was reset while the page was loading



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

我的容器的检查如下所示:
[{
    "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 IP 提到:
据我了解,我将我的服务器绑定(bind)到 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 的连接。或网址 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 only works on localhost:8080 ,but doesnt reply when called by ip (我不是 JBoss 人,所以您必须尝试“-b 0.0.0.0”或通过 ADD 在 Dockerfile 中提供 server.xml)。

当你运行时(在我的例子中,我调用了容器 jboss)

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

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

关于Dockerfile 中的 Jboss 5.1 - 如何在浏览器中访问服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169918/

相关文章:

html - 在 jboss 中为 HTML 加载图像

jboss - jboss/server/web/tmp/vfs-nested.tmp 目录下的大量 JAR 文件

logging - Liferay 6.0.12 日志记录

ubuntu - 在 JBoss 中设置虚拟主机

mongodb - 为什么我的mongo容器的docker-compose healthcheck总是失败?

node.js - 使用pm2或在docker容器中运行nodejs应用程序?

java - 迁移到 JBoss 6.1,为 cxf 添加 spring

Java无法访问NFS共享中的文件

ssl - 在 jboss 4.2 中配置 SSL 时出错?

docker - 如何在 Docker 中保留 RabbitMQ 用户帐户