Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在码头集装箱中前进?

如何在码头集装箱中前进?
EN

Stack Overflow用户
提问于 2015-04-03 06:02:28
回答 1查看 14K关注 0票数 7

我想把8080端口转发到80个港口,并在码头集装箱中使用iptables。在构建中,我有一条错误消息,如下所示。

以下是Dockerfile:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM fedora
RUN whoami && \
 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

这是输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[~]# docker build -t temp /home/edfromhadria/Documents/Docker/temp/.
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon 
Step 0 : FROM fedora
 ---> 834629358fe2
Step 1 : RUN whoami &&  iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
 ---> Running in 95046cf959bf
root
iptables v1.4.21: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
INFO[0001] The command [/bin/sh -c whoami &&  iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080] returned a non-zero code: 3 

谢谢您能提供的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-03 06:25:10

首先,在iptables进程中运行docker build命令是没有意义的;即使运行正常,iptables命令也只是修改内核的运行时配置。这些更改将不会在Docker映像中持久存在,并且在启动容器时也将不可用。

其次,即使您在启动容器后(而不是在构建容器时)运行iptables容器,它仍然会失败,因为Docker容器在默认情况下没有必要的特权来修改iptables配置(或者修改一般的网络,或者挂载文件系统等等)。您可以使用--privileged标志启动容器,但这可能不是您想要做的事情(因为这会赋予容器一些可能不需要的额外特权,从安全的角度来看,只授予绝对必要的特权是个好主意)。

您通常会使用Docker的-p选项来将主机上的端口连接到容器中的端口,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -p 80:8080 temp

这将连接主机上的端口80和容器上的端口8080。

如果这不是您想要的,那么一个更简单的解决方案就是将容器中的应用程序配置为在所需的端口上运行。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29433655

复制
相关文章
打开Mac OSX原生的NTFS功能
很多同学都会为如何在Mac下写入NTFS格式的磁盘而感到困惑,因为默认情况下,把一个NTFS格式的磁盘插入到Mac里,是只能读不能写的。用起来肯定很郁闷,很多同学也因此把移动硬盘分成了双分区,一个NTFS,一个HFS。其实在Mac下完全是可以写NTFS磁盘的
twelvecoder
2021/12/24
1.2K0
JavaScript实现超时调用的功能
<script type="text/javascript"> function showMsg(){ alert("1秒之后会有新的提示"); //延时调用,只调用一次 setTimeout(function(){ alert("我就是惊喜"); }, 1000)//表示延时1000毫秒,可以改成其他的时间段 } </script> </head> <body> <input type="button" value="点击我,有惊喜" οnclick="showMsg()"> </body>
小小鱼儿小小林
2020/06/23
5450
Swift基础 功能(Functions)
翻译自:https://docs.swift.org/swift-book/LanguageGuide/Functions.html
郭顺发
2023/07/17
1570
用代码旋转屏幕
代码 1 btnRotate.setOnClickListener(new OnClickListener() {  2             @Override  3             public void onClick(View v) {  4                 int r = Math.abs(getRequestedOrientation());  5                 Log.d("DEBUG",Integer.toString(r));  6       
用户3135539
2018/09/12
1.5K0
增加MATLAB屏幕截图功能
借助Java或者Python实现截取屏幕指定矩形区域 Java实现 function outputImage=screenCapture(subRegion,outputFile) robo = java.awt.Robot; if ~exist('subRegion','var') || isempty(subRegion) %获取屏幕尺寸 t = java.awt.Toolkit.getDefaultToolkit(); rectangle = java.awt.Rectangl
万木逢春
2019/04/30
1.7K0
Python实现屏幕取色器功能
代码主要思路:首先获取全屏幕截图,在截取的图像上获取指定位置的像素颜色值并转换为十六进制表示形式。 遗憾之处:这个程序的部分代码比较长,在手机上查看时这些换行可能会影响阅读质量,记得之前有个朋友提过建议让我加上代码块,不过我试了试,微信公众号后台的编辑器不支持这个功能,网上找了几个编辑器也不太好用。如果有朋友知道简单易用的支持代码块的编辑器还请推荐一下,谢谢! import os from time import sleep import tkinter import tkinter.filedialog
Python小屋屋主
2018/04/17
7.8K3
屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案
   接到一个博友的反馈,在屏幕旋转时调用 PopupWindow 的 update 方法失效。使用场景如下:在一个 Activity 中监听屏幕旋转事件,在Activity主布局文件中有个按钮点击弹出一个 PopupWindow,另外在主布局文件中有个 ListView。测试结果发现:如果 ListView 设置为可见(visibile)的话,屏幕旋转时调用的 update 方法无效,如果 ListView 设置为不可见(gone)或者直接删除的话,屏幕旋转时调用的update方法就生效。下面先展示两种情况的效果图对比。
用户1155943
2018/07/31
1.2K0
屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案
Mac OSX 给现有的应用追加基于文档的功能
在Xcode中创建Cocoa Application 工程时,通常有两种选择类型:<code>基于文档的Application</code> 和<code>非文档的Application</code>,具体是哪一种类型,关键在于创建工程的时候,你是否选中下图中的<code>Create Document-based Application</code>选项:
代码行者
2018/08/23
6450
Mac OSX 给现有的应用追加基于文档的功能
屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案
用户1155943
2018/01/04
1.9K0
屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案
Docker / OSX快速入门
Docker(容器技术)始于2013年,自那时起我便经常可以看到有关docker的消息。之前我已经尝试过docker的入门例子,但我觉得自己没有真正理解docker技术的价值所在以及docker容器是如何运行的。在这周,当我花了一些时间去研究docker之后,发现它并没有我之前想得那样神秘和复杂。
hzr
2018/01/17
4.6K0
Docker / OSX快速入门
TRTC iOS 屏幕分享功能实践(二)
上一篇介绍了iOS系统屏幕录制的实现方案,接下来我们介绍一下腾讯TRTC SDK的接入方案。
GF
2020/11/06
1.8K0
iOS开发常用之摄像照相视频音频处理
摄像照相视频音频处理 SCRecorder - SCRecorder短视频录制。 VideoPushDemo - 视频剪辑视频特效制作1 视频特效制作2。 LLSimpleCamera - 一款简单的,可自定义的iOS摄像头控件,摄像头。 EZAudio - EZAudio是一个iOS和OSX上简单易用的音频框架,根据音量实时显示波形图,基于Core Audio,适合实时低延迟音频处理,非常直观。中文介绍,官网。 ffmpeg - ffmpeg官网,FFmpeg在iOS上完美编译。 V
GuangdongQi
2019/02/22
2.8K0
Install Scrapy on OSX|mac OSX 上安装Scrapy[SYN:gejoin.com]
顺利的话,一句命令搞定: sudo pip install Scrapy OSX还是需要额外一些包或升级的,包括:
gigiwangs
2019/03/01
7940
Mac OSX安装MongoDB
MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。
xiangzhihong
2022/11/30
8540
[Quartz笔记]玩转定时调度
本文介绍了如何使用Quartz Scheduler进行任务调度,包括Cron表达式、任务定义、调度策略、持久化等。同时,还介绍了Quartz与其他技术的集成,如Spring、MyBatis等。
静默虚空
2018/01/05
9620
TRTC iOS 屏幕分享功能实践(一)
实现直播过程中共享屏幕分为两个步骤:屏幕数据采集和流媒体数据推送。前对于iOS来说,屏幕采集需要系统的权限,受制于iOS系统的限制,第三方app并没有直接录制屏幕的权限,必须通过系统的功能来实现。不同的版本之间有一些差异,下面做个简单的介绍。(注:由于iOS 10和之前的系统只支持App内录制屏幕,所以只做简单的介绍,不做详细说明)
GF
2020/11/04
3.1K0
点击加载更多

相似问题

用SWIFT编写OSX内核扩展?

13

用Swift实现OSX中的TableView

10

Swift iOS -在屏幕旋转时调整collectionLayout大小

11

OSX/Swift:在建立/恢复互联网连接时调用函数

12

使用Swift禁用OSX的睡眠/屏幕保护程序

151
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文