使用docker-compose启动docker-registry

这篇文章是《在本地和Kubernetes上部署微服务意识的Web应用程序的轨迹》的一部分。

首先

比如说,

$ docker run -d -p 80:80 --name webserver nginx

当您使用该命令来启动Docker镜像时,将会启动Nginx镜像。
那么Nginx镜像是从哪里来的呢?它是从Docker的官方注册表下载而来的。

通过注册Docker Hub,任何人都可以公开发布镜像,并且支付月费可以创建私有镜像。

只是,我认为在某些情况下,可能存在着不太愿意将容器放到外部的情况,例如在案件等方面。这种情况下,我们会思考如何在本地部署相同的服务。经过调查,果然有这种可能性。

使用容器创建私有Docker注册表服务器

由于这个形象是由官方提供的,所以我们感激地决定使用它。

安装注册表。

说起来虽然如此,但是步骤非常简单,简直让人吃惊。
只需要在docker-compose.yml文件中写入以下内容,然后启动即可。

registory:
  container_name: local-docker-registory
  image: registry:2.3.0
  ports:
    - 5000:5000
  volumes:
    - <ファイル保存先へのパス>
docker-compose up -d

文件保存路径是主机操作系统的路径,例如/home/registry/repos/。
这样,Docker注册表就可以在以下地址上进行等待。

http://ホストのip:5000

请根据需要适当更改端口号。

将文件推送到已启动的注册表。

要将文件映像推送到最新的注册表中,按照以下步骤进行操作。

构建容器

docker build -t <イメージ名>:<タグ> <DockerFileのあるディレクトリ>

如果你正在目标DockerFile所在的目录中

docker build -t test-image:1.0 .

为构建的镜像添加标签

docker tag <イメージ名>:<タグ> <レジストリのIP>:<ポート>/<リポジトリ名>/<イメージ名>:<タグ>

例子

docker tag test-image:1.0 192.168.0.xxx:5000/test/test-image:1.0

推广形象

docker push <レジストリのIP>:<ポート>/<リポジトリ名>/<イメージ名>:<タグ>

例: 鲍勃正在乘坐火车去上班。

docker push 192.168.0.xxx:5000/test/test-image:1.0

我认为标签主要用来表示版本,但是管理起来相当困难… 特别是当同时处理多个容器应用程序时,会很容易混淆。

无论如何,现在我们获得了私有注册表。
如果使用Kubernetes,所有镜像都需要上传到某个注册表中,所以这对注册表的构建也会很有帮助。关于这方面的内容,我想在另一篇文章中写。

以上就是了。
辛苦了!

广告
将在 10 秒后关闭
bannerAds