时间:2021-05-19
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:proxyportexport http_proxy就是把环境变量http_proxy持久化,但只对该用户登录有效。
注意:容器设置代理 和 docker主机设置代理以及docker守护进程设置代理无关,也就是容器只会使用自己的代理信息上网。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近在学习docker,今天学习了一下ubuntu服务器上快速部署docker,所以,今天添加一点小笔记。安装curlsudoapt-getinstallcur
最近在学习docker的过程中在docker容器中使ifconfig查询网络情况时发现出现了commandnotfound的情况,经过查询资料得知道docker
今天实验了下docker下的网络设置,记录一下过程,以免后面忘记。(系统:Centos7.4,docker版本:18.03.1-ce,docker-compos
本文介绍了Docker中配置国内镜像设置,分享给大家,具体如下:1.为什么要为docker配置国内镜像在正常情况下,docker有一个默认连接的国外官方镜像,在
Docker创建镜像最近学习Docker的知识,偶然在网上看到关于Docker创建对象的两种方法很好,这里记录下,也许可以帮助到你。我们都知道Docker中我们