如何解决Docker-compose无法正确公开端口
所以我有以下Dockerfile:
FROM adoptopenjdk/openjdk13-openj9:alpine-jre
WORKDIR /opt/Lavalink
COPY Lavalink.jar Lavalink.jar
COPY application* ./
RUN if [[ -f "./application.local.yml" ]]; then mv "./application.local.yml" "./application.yml"; fi
EXPOSE 2333
CMD ["java","-jar","Lavalink.jar"]
然后由以下docker-compose.yml启动:
version: '2.4'
services:
lavalink:
network_mode: host
container_name: lavalink
image: skyrabot/lavalink:main
restart: always
ports:
- '2333:2333'
但是,当我尝试连接到服务或检查docker ps
时,发现没有端口发布。
docker ps的输出:
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e35e7cdea0a4 skyrabot/lavalink:main "java -jar Lavalink.…" 7 minutes ago Up 7 minutes lavalink
对我在这里可能做错的任何想法吗?
解决方法
问题出在network_mode: host
行中。提供此选项时,Docker将使用主机网络而不是桥接它,并且它将完全忽略已配置的端口。您应该禁用/删除该行,或将其更改为network_mode: "bridge"
。有关更多信息,请参见https://docs.docker.com/compose/compose-file/compose-file-v2/#network_mode
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。