Docker 镜像仓库是存储和管理 Docker 镜像的地方。它可以是公共或私有的,并且提供了一个集中式的地方来分享、存储和管理 Docker 镜像。这有点像Github和gitlab,只不过github和gitlab是一个代码托管平台,在平台上托管的是代码,这里托管是各种的镜像。
下面是公共镜像仓库和私有镜像仓库两种仓库类型的典型代表:
这些镜像仓库都提供了丰富的功能和服务,可以满足不同场景下的需求。如果用户想要根据自己的需求选择合适的镜像仓库服务来存储和管理 Docker 镜像,那么公共镜像仓库与私有镜像仓库的区别是需要提前了解清楚的:
docker login 命令用于登录到 Docker Hub 或其他 Docker镜像仓库服务。登录成功后,可以通过 Docker客户端来推送(push)或拉取(pull)镜像到该镜像仓库。
docker login [OPTIONS] [SERVER]
各部分的含义如下:
其中OPTIONS部分常见的选项主要是两个:
登录到 Docker Hub:
docker login
图片
这会进入一个交互式对话中,提示你输入用户名和密码。输入正确的用户名和密码即可成功登入;
如果你想通过命令行提供用户名和密码,可以使用 -u 和 -p 选项:
docker login -u USERNAME -p PASSWORD
如果要登录到私有的镜像仓库服务,需要提供相应的私有镜像仓库服务地址,REGISTRY_URL为私有仓库服务的地址:
docker login REGISTRY_URL
登录成功后,将会在终端中看到登录成功的提示信息,并且 Docker 客户端将会在后续的操作中使用你提供的凭据来与镜像仓库服务端进行通信。
请注意,登录到 Docker Registry 时,密码会以明文形式传输,因此请确保在安全的环境中使用 docker login 命令,并避免在公共场所或非安全的网络中使用该命令。
docker logout 命令用于注销当前登录的 Docker 用户,从 Docker Hub 或其他 Docker镜像仓库服务中退出登录状态。
docker logout [SERVER]
其中,SERVER 参数是可选的,用于指定要注销登录的 Docker Registry 的地址。如果不提供该参数,默认将注销当前登录的 Docker Hub 账号。
注销当前登录的 Docker Hub 账号:
docker logout
如果你当前已经登录到私有的 Docker Registry,可以提供相应的 Registry 地址来注销登录状态:
docker logout REGISTRY_URL
执行命令后,你将会看到注销成功的提示信息,并且 Docker客户端将不再使用之前提供的凭据来与 Registry 进行通信。
在开源的企业级Docker私有仓库工具中,Harbo是一个典型代表,相对比较流行,而Docker 官方也提供了一种开源镜像仓库工具 Docker Registry,相较于Harbor,Docker Registry在功能的丰富性上要差一些。下面是两者在功能性上的一些区别:
功能扩展
安全性和权限控制
镜像复制和同步
总的来说,Harbor 在 Docker Registry 的基础上提供了更多的高级功能和安全性控制,适用于更复杂的企业级应用场景。
如果在实际工作应用中,绝对更推荐Harbor。而这篇这里主要是想和大家分享一下私有镜像仓库管理中一些基础功能、通用操作。因此,这里我采用了Docker官方的开源镜像仓库服务Docker Registry。在后面会单独来介绍把Harbor安装、使用的详细方法。
直接使用docker run命令,从Docker Hub中拉取Docker Registry镜像并运行容器:
docker run -d -p 5000:5000 --restart=always --name registry registry:latest
这将在服务器上启动一个 Docker Registry 容器,监听在默认端口 5000 上,并且在容器退出时自动重启,确保 Docker Registry 服务始终可用。
给本地镜像打上远程仓库的标签:
docker tag myimage your-registry/myimage:latest
将镜像推送到远程仓库:
docker push your-registry/myimage:latest
这样,myimage 镜像的 latest 版本就会被推送到了名为 your-registry 的私有仓库中。
如果想使用私有仓库中的镜像:
docker pull your-registry/myimage:latest