我对docker wildfly容器有问题。问题如下,我要使用默认端口8080(对于应用程序)和9090(对于控制台)加载的不同端口启动容器。通过此说明,我设法更改了应用程序的默认端口
docker run -P -d jboss / wildfly /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
-P标志将映像内的所有网络端口映射到Docker主机上从49153到65535范围内的随机高端口
但是我无法访问管理控制台,另一方面,我使用这些值创建了一个dockerfile
FROM jboss / wildfly
RUN /opt/jboss/wildfly/bin/add-user.sh admin Admin # 70365 --silent
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-Djboss.socket.binding.port-offset = 5 "]
另外一个通过删除偏移值
FROM jboss / wildfly
RUN /opt/jboss/wildfly/bin/add-user.sh admin Admin # 70365 --silent
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
我可以提起容器,但仍然无法访问Wildfly管理控制台。我该怎么做才能启动控制台?
答案 0 :(得分:0)
您需要使用“ -p”分隔端口映射:
-p=[] : Publish a container's port or a range of ports to the host
带有“-P”(大写)选项:将所有公开的端口发布到主机界面。
如果您仍要使用“ -P”选项,请使用Dockerfile :(为管理管理控制台添加EXPOSE端口)
FROM jboss/wildfly
# Expose the ports we're interested in
EXPOSE 9990
RUN /opt/jboss/wildfly/bin/add-user.sh admin Admin#70365 --silent
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
然后您可以构建图像:
docker build --tag=jboss/wildfly-admin .
运行它:
docker run -it -P jboss/wildfly-admin
列出容器:
docker container ls
您可以在这里获得相同的结果:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91b6bc131b28 jboss/wildfly-admin "/opt/jboss/wildfly/…" 13 seconds ago Up 12 seconds 0.0.0.0:32771->8080/tcp, 0.0.0.0:32770->9990/tcp quirky_nightingale
您的容器正在运行,并公开端口32770进行管理。 管理控制台应位于http://localhost:32770(就我而言)