如何为正在运行的Docker容器提供Internet访问?

时间:2018-08-07 19:47:12

标签: docker devops docker-machine devops-services

您好,有人可以帮助我告诉正确的命令以提供对正在运行的容器的Internet访问吗?

我知道我们必须在docker run命令中指定--net才能从容器内部访问Internet。

如果我想为未使用--net命令运行的容器提供Internet访问(即,对没有Internet访问的容器)提供访问权限

我从以下位置获得了docker network connect NetworkName ContainerName / ID 命令:https://docs.docker.com/engine/reference/commandline/network_connect/

但是运行上面的命令不能提供Internet访问,因此要求共享正确的命令。

注意:我正在centos容器上尝试

2 个答案:

答案 0 :(得分:0)

默认情况下,您的Docker容器应具有互联网访问权限,因为这是docker的常规设置,决​​不应要求提供-net 来实现。如果他们不这样做,那么您可能在主机上混杂了一些东西,例如ie。其他防火墙规则或未启用IP转发。

对于初学者,请检查是否已启用IP转发,如下所示:

if (interactive()) {
  library(shiny)
  library(shinydashboard)
  library(shinydashboardPlus)
  library(shinyWidgets)
  shinyApp(
    ui = dashboardPagePlus(
      header = dashboardHeaderPlus(
        enable_rightsidebar = TRUE,
        rightSidebarIcon = "gears"
      ),
      sidebar = dashboardSidebar(),
      body = dashboardBody(

        column(2,
               progressBar(id = "pb6", value = 20, status = "danger", size = "xs")
        )
      ),
      rightsidebar = rightSidebar(),
      title = "Right Sidebar"
    ),
    server = function(input, output) { }
  )
}

并验证您的iptables中是否没有时髦的东西

答案 1 :(得分:0)

正确配置后,Docker容器应可解决Internet流量。请通过以下方式检查集装箱网络状态:

Enter public DNS (8.8.8.8)manually in /etc/resolve.conf.

如果不起作用,请检查容器网络端。

#goto /etc/default/docker
#add public DNS values there (DOCKER_OPTS="--dns 208.67.222.222 --dns 208.67.220.220")
#sudo service docker restart

登录到容器并ping google.com