1、如果docker主机不需要通过代理连接外网

则docker的相关命令(如docker search)或docker容器与网络相关的操作都可以正常进行,不需要特殊设置。

2、当docker主机 是通过代理才能连接外网时,采用服务方式启动守护进程

如果docker守护进程是通过服务的方式启动的(sudo start docker)

当我们执行如  docker search ubuntu 命令时,会报错
Error response from daemon: Get https://index.docker.io/v1/search?q=ubuntu: dial tcp: lookup index.docker.io on 127.0.1.1:53: read udp 127.0.1.1:53: i/o timeout

而且这时启动的容器,在容器内也无法连接外网。

需要通过设置来完成。

3、当docker主机 是通过代理才能连接外网时,让docker守护进程可连接外网,非服务启动方式

通过如下方式启动docker守护进程

sudo HTTP_PROXY=http://代理地址:端口 docker daemon

这时执行如  docker search ubuntu 命令时,可以成功。 注意,这并不需要docker主机自己设置代理上网(也就是docker进程没有利用主机设置的代理上网)。

但是正常启动的容器,在容器内也无法连接外网。

4、当docker主机 是通过代理才能连接外网时,采用服务方式启动

可以修改 /etc/default/docker 配置文件

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"
export http_proxy="http://代理地址:端口"

这样采用 sudo start docker方式启动守护进程后

这时执行如  docker search ubuntu 命令时,可以成功。

注意,这并不需要docker主机自己设置代理上网(也就是docker进程没有利用主机设置的代理上网)。

但是正常启动的容器,在容器内也无法连接外网。

5、怎么让容器通过代理上网

容器本身是一个轻量级的linux系统,我们可以通让主机上网一样设置让其上网。容器上网和让docker守护进程联网没有关系。

方法一:临时联网

在shell界面上设置临时环境变量:  export http_proxy="http://代理ip地址:端口"

如:export http_proxy="http://10.41.70.8:80"

一旦设置正确的环境变量http_proxy,容器就可以正常上网了。

因为是临时的,shell关闭后,环境变量就没了。

方法二:修改主目录下的.bashrc文件,增加两行

http_proxy=http://yourproxyaddress:proxyport
export http_proxy

就是把环境变量http_proxy持久化,但只对该用户登录有效。

注意:容器设置代理 和 docker主机设置代理以及docker守护进程设置代理无关,也就是容器只会使用自己的代理信息上网。

docker 学习笔记21:docker连接网络的设置的更多相关文章

  1. Docker学习笔记(1) — docker 常用命令

    1. docker version显示 Docker 版本信息.2. docker info显示 Docker 系统信息,包括镜像和容器数.3. docker searchdocker search ...

  2. Docker学习笔记之Docker的Build 原理

    0x00 概述 使用 Docker 时,最常用的命令无非是 docker container 和 docker image 相关的子命令,当然最初没有管理类命令(或者说分组)的时候,最常使用的命令也无 ...

  3. DOCKER 学习笔记7 Docker Machine 在阿里云实例化ECS 以及本地Windows 实例化虚拟机实战

    前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...

  4. DOCKER 学习笔记7 Docker Machine 建立虚拟机实战,以及错误总结

    前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...

  5. docker学习笔记一:基本安装和设置容器静态ip

    docker是一个lxc升级版的容器类虚拟环境,具有快速部署,灵活,易迁移的虚拟机模式,现在各大公司已经开始广泛使用为了自己方便学习linux,需要多台虚拟机环境,但是vmware开启多台虚拟机时需要 ...

  6. Docker学习笔记2: Docker 概述

    一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and  Run Any App ,AnyWhere" , ...

  7. Docker学习笔记之Docker应用于服务化开发

    0x00 概述 上一节里我们谈到了小型的独立项目如何使用 Docker Compose 来搭建程序的运行环境,对于由多人或多部门参与的中大型服务化架构的项目,仅由一个 Docker Compose 项 ...

  8. DOCKER 学习笔记8 Docker Swarm 集群搭建

    前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...

  9. Docker学习笔记之docker volume 容器卷的那些事(一)

    预览目录 volume 方式 相关用例 使用方式 使用 volume driver bind mount 方式 相关用例 使用方式 配置selinux标签 配置macOS的安装一致性 tmpfs 方式 ...

随机推荐

  1. LintCode-编辑距离

    题目描述: 给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数. 你总共三种操作方法: 插入一个字符 删除一个字符 替换一个字符 样例 给出 work1=" ...

  2. js学习笔记第一课(js基础知识)

    1.js代码在浏览器中执行. 2.js代码直接插入网页中需包含在 <script language="javascript"> js代码 </script> ...

  3. sed(查找替换) 与awk(提取字段)

    通常: sed 处理列  awk处理行 比较方便 Sed是一个基本的查找替换程序     sed -i   "s/^@//g"     文件  #原地操作原文件,进行替换 cat ...

  4. php定界符 <<< 的作用及使用注意事项

    按照原样输出,包括换行符.特殊字符等 任何特殊字符都不需要转义,比如双引号.单引号,它会按照原样输出 像在双引号字符串中一样使用php的变量输出 定界符<<<,当需要输出大段文本时, ...

  5. mahout贝叶斯算法开发思路(拓展篇)2

    如果想直接下面算法调用包,可以直接在mahout贝叶斯算法拓展下载,该算法调用的方式如下: $HADOOP_HOME/bin hadoop jar mahout.jar mahout.fansy.ba ...

  6. Foundation Sorting: Quicksort

    /* Quick Sorting. * Implementation history:. * 2013-09-15, Mars Fu, first version. */ /* [Quicksort ...

  7. Android实现视频录制

    安卓实现视频录制,有两种方法,一种是调用自带的视频功能,一种是使用MediaRecorder. 每种方法都有自己的优缺点.接下来,把两种方法的代码写出来. 先说第一种方法,也是最简单的方法,那就是直接 ...

  8. 【转】install intel wireless 3165 driver for ubuntu 14.04.3

    [转]install intel wireless 3165 driver for ubuntu 14.04.3 Ubuntu 14.04.3 with 3.19 kernel can’t drive ...

  9. ASP.net体系

  10. 在mac本上折腾android 开发环境

    众所周知的原因,google的很多网站在国内无法访问,苦逼了一堆天朝程序员,下是在mac本上折腾android 开发环境的过程: 一.先下载android sdk for mac 给二个靠谱的网址: ...