使用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,所有镜像都需要上传到某个注册表中,所以这对注册表的构建也会很有帮助。关于这方面的内容,我想在另一篇文章中写。
以上就是了。
辛苦了!