日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

介紹

Docker Compose 是一個用于定義和運行多容器 Docker 應用程序的工具。它允許開發人員將他們的應用程序堆棧定義為一個 YAML 文件,只需幾個命令就可以輕松創建復雜的環境。然而,使用 Docker Compose 與私有倉庫可能會有些棘手。在本文中,我們將探討如何在 Docker Compose 中使用私有倉庫,包括不同的身份驗證方法及其示例。

什么是私有倉庫?

Docker鏡像可以存儲在私有或公共倉庫中。公共倉庫對所有人開放,而私有倉庫需要身份驗證才能訪問。私有倉庫通常用于包含專有代碼或數據的鏡像,這些鏡像不應該公開可用。要訪問私有倉庫,您需要提供身份驗證憑據。

使用Docker Compose與私有倉庫

使用Docker Compose與私有存儲庫時,您需要確保運行在主機上的Docker守護程序可以訪問存儲庫。根據存儲庫使用的身份驗證方法,有幾種方法可以實現此目的。

身份驗證方法

Docker Config.json 文件

Docker守護進程可以使用config.json文件來存儲身份驗證憑據。這個文件可以手動創建,也可以使用docker login命令創建。要在Docker Compose中使用config.json文件,您需要將其作為一個卷掛載到容器中。以下是一個示例:

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      volumes:
         - $HOME/.docker/config.json:/root/.docker/config.json

登錄后復制登錄后復制

在這個例子中,我們將位于用戶的主目錄中的config.json文件掛載到容器的根目錄。這樣,容器內運行的Docker守護進程就可以訪問存儲在文件中的憑據。

環境變量

Some private repositories support authentication via environment variables. This method is useful when you don’t want to expose your credentials in a config file. Here’s an example ?

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      environment:
         - REGISTRY_USERNAME=username
         - REGISTRY_PASSWORD=password

登錄后復制

在這個例子中,我們將REGISTRY_USERNAME和REGISTRY_PASSWORD環境變量設置為身份驗證憑據。容器內運行的Docker守護程序可以使用這些變量來與倉庫進行身份驗證。

Docker Compose .env 文件

Docker Compose允許您在.env文件中定義環境變量,當您運行docker-compose命令時,該文件會自動加載。這是一個示例?

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      env_file:
         - .env

登錄后復制登錄后復制

在這個例子中,我們使用env_file指令來加載在.env文件中定義的環境變量。下面是.env文件的示例內容:

REGISTRY_USERNAME=username
REGISTRY_PASSWORD=password

登錄后復制登錄后復制

這種方法與直接在YAML文件中使用環境變量類似,但它允許您將憑據保留在單獨的文件中。

例子

私有倉庫與Docker Config.json文件

假設我們在Docker Hub上有一個私有倉庫,并且我們想在Docker Compose文件中使用它。我們將首先創建一個包含身份驗證憑據的config.json文件 ?

{
   "auths": {
      "https://index.docker.io/v1/": {
         "auth": "dXNlcm5hbWU6cGFzc3dvcmQ="
		}
	}
}

登錄后復制

在這個例子中,我們使用一個base64編碼的字符串作為我們的身份驗證憑據。字符串由用戶名和密碼用冒號分隔并進行編碼

現在,讓我們創建一個使用我們的私有倉庫的Docker Compose文件?

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      volumes:
         - $HOME/.docker/config.json:/root/.docker/config.json

登錄后復制登錄后復制

在這個例子中,我們定義了一個名為”app”的服務,它使用來自我們私有倉庫的鏡像”myprivaterepo/myapp”。我們還將config.json文件作為一個卷掛載到容器中,以便容器內運行的Docker守護進程可以訪問憑據。

要運行此Docker Compose文件,我們可以使用以下命令?

docker-compose up

登錄后復制登錄后復制登錄后復制登錄后復制登錄后復制

這將啟動 “app” 服務并從我們的私有倉庫拉取鏡像。

私有存儲庫與環境變量

假設我們有一個托管在自托管注冊表上的私有存儲庫,并且我們想在Docker Compose文件中使用它。我們將從將身份驗證憑據設置為環境變量開始 –

export REGISTRY_USERNAME=username
export REGISTRY_PASSWORD=password

登錄后復制

現在,讓我們創建一個使用我們的私有倉庫的Docker Compose文件?

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      environment:
         - REGISTRY_USERNAME=$REGISTRY_USERNAME
         - REGISTRY_PASSWORD=$REGISTRY_PASSWORD

登錄后復制

在這個例子中,我們定義了一個名為”app”的服務,它使用來自我們私有倉庫的鏡像”myprivaterepo/myapp”。我們還設置了REGISTRY_USERNAME和REGISTRY_PASSWORD環境變量,用于身份驗證憑據。

要運行此Docker Compose文件,我們可以使用以下命令?

docker-compose up

登錄后復制登錄后復制登錄后復制登錄后復制登錄后復制

這將啟動 “app” 服務并從我們的私有倉庫拉取鏡像。

    私有倉庫與Docker Compose .env文件

    假設我們有一個托管在自托管注冊表上的私有倉庫,并且我們想在Docker Compose文件中使用它。我們將首先創建一個包含我們的身份驗證憑據的.env文件 ?

    REGISTRY_USERNAME=username
    REGISTRY_PASSWORD=password
    

    登錄后復制登錄后復制

    現在,讓我們創建一個使用我們的私有倉庫的Docker Compose文件?

    version: '3.8'
    
    services:
       app:
          image: myprivaterepo/myapp
          env_file:
             - .env
    

    登錄后復制登錄后復制

    在這個例子中,我們定義了一個名為”app”的服務,它使用來自我們私有倉庫的鏡像”myprivaterepo/myapp”。我們還使用了env_file指令來加載在.env文件中定義的環境變量。

    要運行此Docker Compose文件,我們可以使用以下命令?

    docker-compose up
    

    登錄后復制登錄后復制登錄后復制登錄后復制登錄后復制

    這將啟動 “app” 服務并從我們的私有倉庫拉取鏡像。

    私有倉庫與Docker配置

    如果您在一個swarm上運行Docker,您可以使用Docker配置來存儲您的身份驗證憑據。要在Docker Compose中使用Docker配置,我們需要創建一個包含我們身份驗證憑據的配置文件?

    echo "password" | docker secret create registry_password -
    echo "username" | docker secret create registry_username -
    

    登錄后復制

    現在,讓我們創建一個使用我們的私有倉庫的Docker Compose文件?

    version: '3.8'
    
    services:
       app:
          image: myprivaterepo/myapp
          secrets:
             - registry_username
             - registry_password
    

    登錄后復制

    In this example, we’re defining a service called “app” that uses image “myprivaterepo/myapp” from our private repository. We’re also using secrets directive to load registry_username and registry_password secrets into container.

    要運行此Docker Compose文件,我們可以使用以下命令?

    docker-compose up
    

    登錄后復制登錄后復制登錄后復制登錄后復制登錄后復制

    這將啟動 “app” 服務并從我們的私有倉庫拉取鏡像。

    私有倉庫與Docker構建

    如果您正在構建使用私有倉庫的Docker鏡像,您可以使用Docker build來對私有倉庫進行身份驗證。以下是一個示例 –

    docker build --build-arg REGISTRY_USERNAME=username --build-arg REGISTRY_PASSWORD=password -t myprivaterepo/myapp .
    

    登錄后復制

    在這個示例中,我們正在構建一個名為”myprivaterepo/myapp”的鏡像,該鏡像使用了一個私有倉庫。我們通過 –build-arg 參數將我們的身份驗證憑據作為構建參數傳遞。

    一旦鏡像構建完成,我們可以在Docker Compose文件中使用它?

    version: '3.8'
    
    services:
       app:
          image: myprivaterepo/myapp
    

    登錄后復制

    在這個例子中,我們定義了一個名為”app”的服務,它使用來自我們私有倉庫的鏡像”myprivaterepo/myapp”。

    要運行此Docker Compose文件,我們可以使用以下命令?

    docker-compose up
    

    登錄后復制登錄后復制登錄后復制登錄后復制登錄后復制

    這將啟動“app”服務,并使用來自我們私有倉庫的鏡像。

    結論

    使用Docker Compose與私有倉庫可能會有一些挑戰,但是有幾種可用的身份驗證方法可以使訪問您的鏡像變得更容易。在本文中,我們探討了如何使用Docker Compose與私有倉庫,涵蓋了不同的身份驗證方法及其示例。通過按照這些示例,您可以輕松地對私有倉庫進行身份驗證,并在Docker Compose中使用您的鏡像。

    以上就是使用docker-compose與私有倉庫的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:compose Docker 倉庫 私有
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定