欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何優(yōu)雅的給Docker配置網(wǎng)絡(luò)代理

 更新時(shí)間:2024年01月17日 16:53:07   作者:程序員老舅  
有時(shí)因?yàn)榫W(wǎng)絡(luò)原因,比如公司 NAT,或其它啥的,需要使用代理,這篇文章主要為大家詳細(xì)介紹了如何優(yōu)雅的給Docker配置網(wǎng)絡(luò)代理,需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下

有時(shí)因?yàn)榫W(wǎng)絡(luò)原因,比如公司 NAT,或其它啥的,需要使用代理。Docker 的代理配置,略顯復(fù)雜,因?yàn)橛腥N場(chǎng)景。但基本原理都是一致的,都是利用 Linux 的 http_proxy 等環(huán)境變量。

Dockerd 代理

在執(zhí)行docker pull時(shí),是由守護(hù)進(jìn)程dockerd來(lái)執(zhí)行。因此,代理需要配在dockerd的環(huán)境中。而這個(gè)環(huán)境,則是受systemd所管控,因此實(shí)際是systemd的配置。

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf

在這個(gè)proxy.conf文件(可以是任意*.conf的形式)中,添加以下內(nèi)容:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

其中,proxy.example.com:8080 要換成可用的免密代理。通常使用 cntlm 在本機(jī)自建免密代理,去對(duì)接公司的代理。可參考《Linux下安裝配置Cntlm 代理》。

Container 代理

在容器運(yùn)行階段,如果需要代理上網(wǎng),則需要配置 ~/.docker/config.json。以下配置,只在Docker 17.07及以上版本生效。

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://proxy.example.com:8080",
     "httpsProxy": "http://proxy.example.com:8080",
     "noProxy": "localhost,127.0.0.1,.example.com"
   }
 }
}

這個(gè)是用戶(hù)級(jí)的配置,除了 proxies,docker login 等相關(guān)信息也會(huì)在其中。而且還可以配置信息展示的格式、插件參數(shù)等。

此外,容器的網(wǎng)絡(luò)代理,也可以直接在其運(yùn)行時(shí)通過(guò) -e 注入 http_proxy 等環(huán)境變量。這兩種方法分別適合不同場(chǎng)景

config.json 非常方便,默認(rèn)在所有配置修改后啟動(dòng)的容器生效,適合個(gè)人開(kāi)發(fā)環(huán)境。在CI/CD的自動(dòng)構(gòu)建環(huán)境、或者實(shí)際上線(xiàn)運(yùn)行的環(huán)境中,這種方法就不太合適,用 -e 注入這種顯式配置會(huì)更好,減輕對(duì)構(gòu)建、部署環(huán)境的依賴(lài)。當(dāng)然,在這些環(huán)境中,最好用良好的設(shè)計(jì)避免配置代理上網(wǎng)。

Docker Build 代理

雖然 docker build 的本質(zhì),也是啟動(dòng)一個(gè)容器,但是環(huán)境會(huì)略有不同,用戶(hù)級(jí)配置無(wú)效。在構(gòu)建時(shí),需要注入 http_proxy 等參數(shù)。

docker build . \
    --build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \
    --build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \
    --build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \
    -t your/image:tag

注意:無(wú)論是 docker run 還是 docker build,默認(rèn)是網(wǎng)絡(luò)隔絕的。如果代理使用的是 localhost:3128 這類(lèi),則會(huì)無(wú)效。這類(lèi)僅限本地的代理,必須加上 --network host 才能正常使用。而一般則需要配置代理的外部IP,而且代理本身要開(kāi)啟 Gateway 模式。

重啟生效

代理配置完成后,reboot 重啟當(dāng)然可以生效,但不重啟也行。

docker build 代理是在執(zhí)行前設(shè)置的,所以修改后,下次執(zhí)行立即生效。Container 代理的修改也是立即生效的,但是只針對(duì)以后啟動(dòng)的 Container,對(duì)已經(jīng)啟動(dòng)的 Container 無(wú)效。

dockerd 代理的修改比較特殊,它實(shí)際上是改 systemd 的配置,因此需要重載 systemd 并重啟 dockerd 才能生效。

sudo systemctl daemon-reload
sudo systemctl restart docker

到此這篇關(guān)于詳解如何優(yōu)雅的給Docker配置網(wǎng)絡(luò)代理的文章就介紹到這了,更多相關(guān)Docker配置網(wǎng)絡(luò)代理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 云服務(wù)器安裝docker環(huán)境的解決方案

    云服務(wù)器安裝docker環(huán)境的解決方案

    這篇文章主要介紹了云服務(wù)器安裝docker環(huán)境的解決方案,可以使用termins連接服務(wù)器,詳細(xì)介紹了docker安裝與Portainer安裝過(guò)程,需要的朋友可以參考下
    2024-04-04
  • docker如何搭建samba共享目錄

    docker如何搭建samba共享目錄

    文章介紹了如何使用Docker搭建一個(gè)Samba共享文件系統(tǒng),首先安裝了Docker容器,然后下載并拉取了Samba鏡像,在本地創(chuàng)建了一個(gè)目錄用于掛載,啟動(dòng)容器并添加了SMB用戶(hù)名和密碼,驗(yàn)證掛載成功,最后總結(jié)了主要參數(shù)
    2025-03-03
  • 如何利用Docker部署一個(gè)簡(jiǎn)單的springboot項(xiàng)目

    如何利用Docker部署一個(gè)簡(jiǎn)單的springboot項(xiàng)目

    這篇文章主要介紹了如何利用Docker部署一個(gè)簡(jiǎn)單的springboot項(xiàng)目,本文通過(guò)實(shí)例圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • 給docker配置指定ip的超詳細(xì)圖解

    給docker配置指定ip的超詳細(xì)圖解

    這篇文章主要給大家介紹了關(guān)于給docker配置指定ip的超詳細(xì)圖解教程,Docker容器的IP地址由Docker守護(hù)進(jìn)程動(dòng)態(tài)分配,默認(rèn)情況下,它使用的是宿主機(jī)的IP地址,但是在某些情況下,您可能需要為Docker容器指定靜態(tài)IP地址,需要的朋友可以參考下
    2023-09-09
  • Windows下Docker安裝各種軟件的詳細(xì)過(guò)程

    Windows下Docker安裝各種軟件的詳細(xì)過(guò)程

    這篇文章主要介紹了Windows下Docker安裝各種軟件的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Docker安裝FTP服務(wù)器的方法步驟

    Docker安裝FTP服務(wù)器的方法步驟

    FTP是一種傳輸協(xié)議,本文主要介紹了Docker安裝FTP服務(wù)器的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Docker容器不斷重啟問(wèn)題解決

    Docker容器不斷重啟問(wèn)題解決

    本文主要介紹了使用docker-compose.yml配置文件啟動(dòng)容器時(shí)遇到的問(wèn)題,卷標(biāo)沖突和容器無(wú)法啟動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • idea使用docker插件一鍵部署項(xiàng)目的操作方法

    idea使用docker插件一鍵部署項(xiàng)目的操作方法

    這篇文章主要介紹了idea使用docker插件一鍵部署項(xiàng)目的操作方法,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-04-04
  • docker部署mysql和nginx服務(wù)的示例詳解

    docker部署mysql和nginx服務(wù)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了docker部署mysql和nginx服務(wù)的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • CentOS7上安裝Docker的詳細(xì)步驟

    CentOS7上安裝Docker的詳細(xì)步驟

    Docker?是一個(gè)開(kāi)源工具,它可以讓創(chuàng)建和管理?Linux?容器變得簡(jiǎn)單,容器就像是輕量級(jí)的虛擬機(jī),并且可以以毫秒級(jí)的速度來(lái)啟動(dòng)或停止,下面這篇文章主要給大家介紹了關(guān)于CentOS7上安裝Docker的詳細(xì)步驟,需要的朋友可以參考下
    2022-01-01

最新評(píng)論