Docker - 私人Registry
Docker Registry的介紹
大家好,未來的Docker大師們!今天,我們將要探訪令人著迷的Docker Registry世界。別擔心如果你是新人;我會一步步引導你,就像我這些年來對無數學生做的一樣。讓我們開始這場旅程吧!
Docker Registry就像是你Docker镜像的圖書館。這是一個你可以存儲、管理和分發這些镜像的地方。把它當作是一個你將所有喜愛的書籍(或者在本例中,Docker镜像)整齊排列、容易取得的书架。
Docker Registry的類型
Docker Registry主要有兩種類型:
- 公共Registry(如Docker Hub)
- 私人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
現在,我們不會希望任何人都能访问我們的私人图书馆,對吧?讓我們添加一些安全性。
使用基本认证
以下是如何设置基本认证:
- 创建一个密码文件:
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd
- 运行带认证的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