docker 學(xué)習(xí)筆記之docker連接網(wǎng)絡(luò)的設(shè)置
1、如果docker主機(jī)不需要通過代理連接外網(wǎng)
則docker的相關(guān)命令(如docker search)或docker容器與網(wǎng)絡(luò)相關(guān)的操作都可以正常進(jìn)行,不需要特殊設(shè)置。
2、當(dāng)docker主機(jī) 是通過代理才能連接外網(wǎng)時(shí),采用服務(wù)方式啟動(dòng)守護(hù)進(jìn)程
如果docker守護(hù)進(jìn)程是通過服務(wù)的方式啟動(dòng)的(sudo start docker)
當(dāng)我們執(zhí)行如 docker search ubuntu 命令時(shí),會(huì)報(bào)錯(cuò)
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
而且這時(shí)啟動(dòng)的容器,在容器內(nèi)也無法連接外網(wǎng)。
需要通過設(shè)置來完成。
3、當(dāng)docker主機(jī) 是通過代理才能連接外網(wǎng)時(shí),讓docker守護(hù)進(jìn)程可連接外網(wǎng),非服務(wù)啟動(dòng)方式
通過如下方式啟動(dòng)docker守護(hù)進(jìn)程
sudo HTTP_PROXY=http://代理地址:端口 docker daemon
這時(shí)執(zhí)行如 docker search ubuntu 命令時(shí),可以成功。 注意,這并不需要docker主機(jī)自己設(shè)置代理上網(wǎng)(也就是docker進(jìn)程沒有利用主機(jī)設(shè)置的代理上網(wǎng))。
但是正常啟動(dòng)的容器,在容器內(nèi)也無法連接外網(wǎng)。
4、當(dāng)docker主機(jī) 是通過代理才能連接外網(wǎng)時(shí),采用服務(wù)方式啟動(dòng)
可以修改 /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方式啟動(dòng)守護(hù)進(jìn)程后
這時(shí)執(zhí)行如 docker search ubuntu 命令時(shí),可以成功。
注意,這并不需要docker主機(jī)自己設(shè)置代理上網(wǎng)(也就是docker進(jìn)程沒有利用主機(jī)設(shè)置的代理上網(wǎng))。
但是正常啟動(dòng)的容器,在容器內(nèi)也無法連接外網(wǎng)。
5、怎么讓容器通過代理上網(wǎng)
容器本身是一個(gè)輕量級(jí)的linux系統(tǒng),我們可以通讓主機(jī)上網(wǎng)一樣設(shè)置讓其上網(wǎng)。容器上網(wǎng)和讓docker守護(hù)進(jìn)程聯(lián)網(wǎng)沒有關(guān)系。
方法一:臨時(shí)聯(lián)網(wǎng)
在shell界面上設(shè)置臨時(shí)環(huán)境變量: export http_proxy="http://代理ip地址:端口"
如:
export http_proxy=http://10.41.70.8:80
一旦設(shè)置正確的環(huán)境變量http_proxy,容器就可以正常上網(wǎng)了。
因?yàn)槭桥R時(shí)的,shell關(guān)閉后,環(huán)境變量就沒了。
方法二:修改主目錄下的.bashrc文件,增加兩行
http_proxy=http://yourproxyaddress:proxyport export http_proxy
就是把環(huán)境變量http_proxy持久化,但只對(duì)該用戶登錄有效。
注意:容器設(shè)置代理 和 docker主機(jī)設(shè)置代理以及docker守護(hù)進(jìn)程設(shè)置代理無關(guān),也就是容器只會(huì)使用自己的代理信息上網(wǎng)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 淺談docker-compose網(wǎng)絡(luò)設(shè)置之networks
- Docker容器訪問宿主機(jī)網(wǎng)絡(luò)的方法
- Docker為網(wǎng)絡(luò)bridge模式指定容器ip的方法
- Docker Compose 網(wǎng)絡(luò)設(shè)置詳解
- Docker網(wǎng)絡(luò)代理設(shè)置詳解
- Docker 網(wǎng)絡(luò)模式(四種)詳細(xì)介紹
- Docker端口映射實(shí)現(xiàn)網(wǎng)絡(luò)訪問的方法
- docker容器內(nèi)網(wǎng)絡(luò)請(qǐng)求緩慢問題解決
- centos修改docker網(wǎng)絡(luò)配置方法分享
- Docker網(wǎng)絡(luò)模型以及容器通信詳解續(xù)篇
相關(guān)文章
docker多個(gè)容器的相互通信實(shí)現(xiàn)步驟
本文介紹了在宿主機(jī)上運(yùn)行多個(gè)Docker容器時(shí)的幾種通信方式,包括默認(rèn)的橋接網(wǎng)絡(luò)、自定義網(wǎng)絡(luò)、--link參數(shù)、Host網(wǎng)絡(luò)、Docker-compose和共享數(shù)據(jù)卷等,每種方式都有其特點(diǎn)和適用場(chǎng)景,感興趣的朋友跟隨小編一起看看吧2025-02-02
使用Docker搭建Vsftpd 的 FTP 服務(wù)的詳細(xì)過程
FTP 基礎(chǔ)FTP 需要兩個(gè)端口,一個(gè)是數(shù)據(jù)端口,一個(gè)是控制端口,這篇文章主要介紹了使用Docker搭建Vsftpd的FTP服務(wù),需要的朋友可以參考下2022-08-08
教你如何通過編寫dockerfile部署python項(xiàng)目
Dockerfile是一個(gè)放置在項(xiàng)目根目錄下的描述文件,可以利用 Docker 命令基于該文件構(gòu)建一個(gè)鏡像,下面這篇文章主要給大家介紹了關(guān)于如何通過編寫dockerfile部署python項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2024-07-07
docker實(shí)踐之docker-compose部署mysql方式
這篇文章主要介紹了docker實(shí)踐之docker-compose部署mysql方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08

