docker - 尝试运行容器时,docker 是否需要额外的端口?
问题描述
在我的工作场所,docker 在防火墙后面运行,规则只排除了用于服务网页的端口。
容器启动,但网站未针对同一端口打开。
如果我使用 python -m SimpleHTTPServer 从运行容器的机器托管网站,它可以工作。
docker container run --restart=always -p 8081: 8082 -it vue-js-app: latest
解决方案
发布或公开端口(-p,--expose)
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
这会将容器的 8080 端口绑定到主机 127.0.0.1 上的 TCP 端口 80。您还可以指定 udp 和 sctp 端口。Docker 用户指南详细解释了如何在 Docker 中操作端口。
$ docker run --expose 80 ubuntu bash
这会暴露容器的 80 端口,而不会将端口发布到主机系统的接口。
并且,来自Docker 用户指南:
您还看到了如何使用 -p 标志将容器的端口绑定到特定端口。这里主机的 80 端口映射到容器的 5000 端口:
$ docker run -d -p 80:5000 training/webapp python app.py
因此,作为如何公开您可以使用的端口的示例:
docker container run --restart always -p 8081:8082 -it vue-js-app:latest
推荐阅读
- javascript - 如果大小大于 2MB,如何压缩图像
- c# - 在 C# 中将两个字节转换为半浮点数
- python - 使用图像相似性度量的图像搜索
- highcharts - 在 highstocks 和 highcharts 中执行 MeasureX 时禁用测量注释中的标签文本(最小值、最大值、平均值、箱值)
- java - 进入 Razorpay 付款代码 getActivity 不起作用
- jquery - 找到最近的隐藏元素并用 jQuery 显示它
- flutter - 颤振状态颜色变化
- javascript - 如何在 jQuery 的特定下拉列表中应用 .hide()?
- java - 通过父类创建新对象
- c++ - 从向量中获取大小