Docker - 私人Registry

Docker Registry的介紹

大家好,未來的Docker大師們!今天,我們將要探訪令人著迷的Docker Registry世界。別擔心如果你是新人;我會一步步引導你,就像我這些年來對無數學生做的一樣。讓我們開始這場旅程吧!

Docker - Registries

Docker Registry就像是你Docker镜像的圖書館。這是一個你可以存儲、管理和分發這些镜像的地方。把它當作是一個你將所有喜愛的書籍(或者在本例中,Docker镜像)整齊排列、容易取得的书架。

Docker Registry的類型

Docker Registry主要有兩種類型:

  1. 公共Registry(如Docker Hub)
  2. 私人Registry

今天,我們將聚焦於私人Registry。但你為什麼會想要一個私人Registry呢?想像你正在寫一個秘密食譜。你會想在公共布告板上貼出來嗎?這就是私人Registry派上用場的地方!

建置一個私人Registry

讓我們捋起袖子,建立我們自己的私人Registry。這比你想像的還要簡單!

步驟1:拉取Registry镜像

首先,我們需要從Docker Hub拉取官方的registry镜像。打開你的終端機並輸入:

docker pull registry:2

這個命令就像是在請圖書管理員從"Docker Hub"圖書館帶給你"registry"這本書。

步驟2:運行Registry容器

現在,讓我們啟動我們的registry:

docker run -d -p 5000:5000 --name my-registry registry:2

讓我們來拆解一下:

  • -d:在背景(分離模式)運行容器
  • -p 5000:5000:將容器的5000端口映射到主機的5000端口
  • --name my-registry:給我們的容器一個友好的名稱
  • registry:2:我們用來創建這個容器的镜像

恭喜你!你现在已经在你的机器上运行了一个私人registry。

將镜像推送到你的私人Registry

既然我們有了registry,讓我們在其中放入一些镜像!

步驟1:標記一個镜像

首先,我們需要標記一個镜像以將其與我們的registry關聯:

docker tag my-image:latest localhost:5000/my-image:latest

這就像是在你的书上贴上一个特殊的贴纸,以显示它属于你的私人图书馆。

步驟2:推送镜像

現在,讓我們將這個镜像推送到我們的registry:

docker push localhost:5000/my-image:latest

你已经将你的第一本书添加到你的私人图书馆!

從你的私人Registry拉取镜像

要从你的私人registry使用镜像,你可以这样拉取:

docker pull localhost:5000/my-image:latest

就这么简单!你现在正在从你的私人图书馆中检索书籍。

保护你的私人Registry

現在,我們不會希望任何人都能访问我們的私人图书馆,對吧?讓我們添加一些安全性。

使用基本认证

以下是如何设置基本认证:

  1. 创建一个密码文件:
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd
  1. 运行带认证的registry:
docker run -d \
-p 5000:5000 \
--name secure-registry \
-v "$(pwd)"/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry:2

现在你的registry已经用用户名和密码保护起来了!

有用的Docker Registry命令

以下是一些你可能发现有用的命令:

命令 描述
docker pull registry:2 拉取registry镜像
docker run -d -p 5000:5000 --name my-registry registry:2 运行一个registry容器
docker tag image:tag localhost:5000/image:tag 为本地registry标记一个镜像
docker push localhost:5000/image:tag 将镜像推送到本地registry
docker pull localhost:5000/image:tag 从本地registry拉取镜像
docker search localhost:5000/ 在本地registry中搜索

结论

就是这样,各位!你刚刚建立了自己的私人Docker registry。記住,熟能生巧。不要害怕尝试不同的事情。谁知道呢?你可能会发现一些新而令人兴奋的东西!

在我多年的教学经验中,我见证了学生从完全的初学者变成了Docker大师。只要有耐心和坚持,你也会达到那个水平。继续推送(双关语)并且快乐地使用Docker吧!

Credits: Image by storyset