Docker - 私有仓库
Docker 仓库简介
你好,未来的Docker大师们!今天,我们将深入探索Docker仓库的迷人世界。如果你是新手,不用担心;我会一步一步地引导你,就像我多年来教导无数学生那样。让我们开始这段旅程吧!
Docker仓库就像是你Docker镜像的图书馆。它是一个可以存储、管理和分发这些镜像的地方。把它想象成你存放所有喜欢的书籍(或者说Docker镜像)的书架,整齐有序,易于访问。
Docker 仓库的类型
Docker仓库主要有两种类型:
- 公共仓库(如Docker Hub)
- 私有仓库
今天,我们将专注于私有仓库。但为什么你需要一个私有仓库呢?想象一下你在写一个秘密食谱。你不会想把它贴在公共布告板上,对吧?这就是私有仓库的用武之地!
设置私有仓库
让我们卷起袖子,自己设置一个私有仓库。这比你想象的要简单!
步骤 1:拉取仓库镜像
首先,我们需要从Docker Hub拉取官方的仓库镜像。打开终端并输入:
docker pull registry:2
这个命令就像是在请求图书管理员从“Docker Hub”图书馆给你带来“registry”这本书。
步骤 2:运行仓库容器
现在,让我们启动我们的仓库:
docker run -d -p 5000:5000 --name my-registry registry:2
让我们分解一下:
-
-d
:在后台运行容器 -
-p 5000:5000
:将容器的5000端口映射到宿主机的5000端口 -
--name my-registry
:给我们的容器起一个友好的名字 -
registry:2
:我们用来创建这个容器的镜像
恭喜你!你现在在机器上运行了自己的私有仓库。
将镜像推送到私有仓库
现在我们有了仓库,让我们放一些镜像进去!
步骤 1:标记镜像
首先,我们需要标记一个镜像,将其与我们的仓库关联:
docker tag my-image:latest localhost:5000/my-image:latest
这就好比在你的书上贴上一个特殊标签,以示它属于你的私人图书馆。
步骤 2:推送镜像
现在,让我们将这个镜像推送到我们的仓库:
docker push localhost:5000/my-image:latest
你已经将你的第一本书加入了私人图书馆!
从私有仓库拉取镜像
要从私有仓库使用镜像,你可以这样拉取:
docker pull localhost:5000/my-image:latest
就这么简单!你现在从私人图书馆中检索书籍。
保护你的私有仓库
现在,我们肯定不希望任何人都能访问我们的私人图书馆,对吧?让我们增加一些安全性。
使用基本认证
以下是设置基本认证的方法:
- 创建密码文件:
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd
- 运行带认证的仓库:
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
现在,你的仓库已经通过用户名和密码进行了保护!
有用的Docker仓库命令
以下是一些你可能发现很有用的命令:
命令 | 描述 |
---|---|
docker pull registry:2 |
拉取仓库镜像 |
docker run -d -p 5000:5000 --name my-registry registry:2 |
运行仓库容器 |
docker tag image:tag localhost:5000/image:tag |
为本地仓库标记镜像 |
docker push localhost:5000/image:tag |
将镜像推送到本地仓库 |
docker pull localhost:5000/image:tag |
从本地仓库拉取镜像 |
docker search localhost:5000/ |
在本地仓库中搜索 |
结论
就这样,朋友们!你刚刚建立了自己的私有Docker仓库。记住,熟能生巧。不要害怕尝试和尝试不同的事情。谁知道呢?你可能会发现一些新奇而激动人心的东西!
在我多年的教学过程中,我见证了学生从完全的初学者变成了Docker高手。只要有耐心和毅力,你也会达到那个水平。继续努力(双关语)并享受Docker之旅!
Credits: Image by storyset