我需要确保只有HTTPS通信是从Docker容器中发出的。
限制从容器中发出的HTTP(或任何其他端口)的最佳方法是什么?
容器本身不侦听任何端口。容器内的工具发出HTTP / HTTPS请求以提取许可证。我需要确保它只能执行HTTPS请求。
最好在docker主机端阻止流量吗?
赞:
iptables -I DOCKER-USER -i ext_if -p tcp --dport http -j REJECT
我不想弄乱Docker在初始化时创建的所有表。
答案 0 :(得分:2)
如果需要限制特定容器(而不是主机级别,不是所有容器)的流量,则必须在该容器中添加防火墙规则。这是一个示例:
运行容器search_tweets <- function(search) return(search)
library(shiny)
ui <- fluidPage(
# Application title
#titlePanel("Twitter Analytics"),
fluidRow(
column( 4, titlePanel("Twitter Analytics")),
column( 3, textOutput("mysearch") ),
column( 4, textInput("searchstring",
label = "",
value = "")),
column(1,
br(),
actionButton("action", "go"))
)
)
server <- function(input, output) {
twitter <- eventReactive(input$action,{
search_tweets(input$searchstring)
})
output$mysearch <- renderText({
twitter()
})
}
shinyApp(ui, server)
安装iptables和curl
docker run --rm -it --cap-add=NET_ADMIN debian
添加防火墙规则
apt update && apt install iptables curl
然后使用以下方法测试规则:
ptables -A OUTPUT -p tcp --dport 80 -j DROP