如何部署 Docker Registry 服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何部署 Docker Registry 服务相关的知识,希望对你有一定的参考价值。

官方镜像下的简单示例本节中,将创建一个Container来运行Docker的官方Registry镜像。你将推送(Push)一个镜像到这个Registry服务器,然后再从该Registry中拉取(Pull)同一个镜像。这是个很好的练习,有助于理解客户端与本地Registry的基本交互。1、安装Docker。2、从Docker公共Registry中运行hello-world镜像。$dockerrunhello-worldrun命令自动从Docker的官方镜像库中将hello-world镜像pull下来。3、在localhost上启动Registry服务。$dockerrun-p5000:5000registry:2.0这将在DOCKER_HOST上启动一个Registry服务,并在5000端口监听。4、列出镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910B这个列表应当包括一个由先前运行而得来的hello-world镜像。5、为本地repoistory重新标记hello-world镜像。$dockertaghello-world:latestlocalhost:5000/hello-mine:latest此命令使用[REGISTRYHOST/]NAME[:TAG]格式为hello-world:latest重新打标。REGISTRYHOST在此例中是localhost。在MacOSX环境中,得把localhost换成$(boot2dockerip):5000。6、列出新镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910Blocalhost:5000/hello-minelatestef5a5gf57b013monthsago910B可以看到,新镜像已经出现在列表中。7、推送新镜像到本地Registry中。$dockerpushlocalhost:5000/hello-mine:latestThepushreferstoarepository[localhost:5000/hello-mine](len:1)e45a5af57b00:Imagealreadyexists31cbccb51277:Imagesuccessfullypushed511136ea3c5a:ImagealreadyexistsDigest:sha256:a1b13bc01783882434593119198938b9b9ef2bd32a0a246f16ac99b01383ef7a8、使用curl命令及DockerRegistry服务APIv2列出Registry中的镜像:$curl-v-XGEThttp://localhost:5000/v2/hello-mine/tags/list*HostnamewasNOTfoundinDNScache*Trying127.0.0.1*Connectedtolocalhost(127.0.0.1)port5000(#0)>GET/v2/hello-mine/tags/listHTTP/1.1>User-Agent:curl/7.35.0>Host:localhost:5000>Accept:*/*> 参考技术A 你好,
  将创建一个 Container 来运行 Docker 的官方 Registry 镜像。你将推送(Push)一个镜像到这个 Registry 服务器,然后再从该 Registry 中拉取(Pull)同一个镜像。

  这是个很好的练习,有助于理解客户端与本地 Registry 的基本交互。

  1、安装 Docker。

  2、从 Docker 公共 Registry 中运行 hello-world 镜像。

  $ docker run hello-world
  run 命令自动从 Docker 的官方镜像库中将 hello-world 镜像 pull 下来。

  3、在 localhost 上启动 Registry 服务。

  $ docker run -p 5000:5000 registry:2.0
  这将在 DOCKER_HOST 上启动一个 Registry 服务,并在 5000 端口监听。
  4、列出镜像。

  $ docker images
  REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
  registry 2.0 bbf0b6ffe923 3 days ago 545.1 MB
  golang 1.4 121a93c90463 5 days ago 514.9 MB
  hello-world latest e45a5af57b00 3 months ago 910 B
  这个列表应当包括一个由先前运行而得来的 hello-world 镜像。

  5、为本地 repoistory 重新标记 hello-world 镜像。

  $ docker tag hello-world:latest localhost:5000/hello-mine:latest
  此命令使用 [REGISTRYHOST/]NAME[:TAG] 格式为 hello-world:latest 重新打标。REGISTRYHOST在此例中是 localhost。在 Mac OSX 环境中,得把 localhost 换成 $(boot2docker ip):5000。

  6、列出新镜像。

  $ docker images
  REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
  registry 2.0 bbf0b6ffe923 3 days ago 545.1 MB
  golang 1.4 121a93c90463 5 days ago 514.9 MB
  hello-world latest e45a5af57b00 3 months ago 910 B
  localhost:5000/hello-mine latest ef5a5gf57b01 3 months ago 910 B
  可以看到,新镜像已经出现在列表中。

  7、推送新镜像到本地 Registry 中。

  $ docker push localhost:5000/hello-mine:latest
  The push refers to a repository [localhost:5000/hello-mine] (len: 1)
  e45a5af57b00: Image already exists
  31cbccb51277: Image successfully pushed
  511136ea3c5a: Image already exists
  Digest: sha256:a1b13bc01783882434593119198938b9b9ef2bd32a0a246f16ac99b01383ef7a
  8、使用 curl 命令及 Docker Registry 服务 API v2 列出 Registry 中的镜像
参考技术B 官方镜像下的简单示例本节中,将创建一个Container来运行Docker的官方Registry镜像。你将推送(Push)一个镜像到这个Registry服务器,然后再从该Registry中拉取(Pull)同一个镜像。这是个很好的练习,有助于理解客户端与本地Registry的基本交互。1、安装Docker。2、从Docker公共Registry中运行hello-world镜像。$dockerrunhello-worldrun命令自动从Docker的官方镜像库中将hello-world镜像pull下来。3、在localhost上启动Registry服务。$dockerrun-p5000:5000registry:2.0这将在DOCKER_HOST上启动一个Registry服务,并在5000端口监听。4、列出镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910B这个列表应当包括一个由先前运行而得来的hello-world镜像。5、为本地repoistory重新标记hello-world镜像。$dockertaghello-world:latestlocalhost:5000/hello-mine:latest此命令使用[REGISTRYHOST/]NAME[:TAG]格式为hello-world:latest重新打标。REGISTRYHOST在此例中是localhost。在MacOSX环境中,得把localhost换成$(boot2dockerip):5000。6、列出新镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910Blocalhost:5000/hello-minelatestef5a5gf57b013monthsago910B可以看到,新镜像已经出现在列表中。7、推送新镜像到本地Registry中。$dockerpushlocalhost:5000/hello-mine:latestThepushreferstoarepository[localhost:5000/hello-mine](len:1)e45a5af57b00:Imagealreadyexists31cbccb51277:Imagesuccessfullypushed511136ea3c5a:ImagealreadyexistsDigest:sha256:a1b13bc01783882434593119198938b9b9ef2bd32a0a246f16ac99b01383ef7a8、使用curl命令及DockerRegistry服务APIv2列出Registry中的镜像:$curl-v-XGEThttp://localhost:5000/v2/hello-mine/tags/list*HostnamewasNOTfoundinDNScache*Trying127.0.0.1*Connectedtolocalhost(127.0.0.1)port5000(#0)>GET/v2/hello-mine/tags/listHTTP/1.1>User-Agent:curl/7.35.0>Host:localhost:5000>Accept:*/*> 参考技术C 官方镜像下的简单示例本节中,将创建一个Container来运行Docker的官方Registry镜像。你将推送(Push)一个镜像到这个Registry服务器,然后再从该Registry中拉取(Pull)同一个镜像。这是个很好的练习,有助于理解客户端与本地Registry的基本交互。1、安装Docker。2、从Docker公共Registry中运行hello-world镜像。$dockerrunhello-worldrun命令自动从Docker的官方镜像库中将hello-world镜像pull下来。3、在localhost上启动Registry服务。$dockerrun-p5000:5000registry:2.0这将在DOCKER_HOST上启动一个Registry服务,并在5000端口监听。4、列出镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910B这个列表应当包括一个由先前运行而得来的hello-world镜像。5、为本地repoistory重新标记hello-world镜像。$dockertaghello-world:latestlocalhost:5000/hello-mine:latest此命令使用[REGISTRYHOST/]NAME[:TAG]格式为hello-world:latest重新打标。REGISTRYHOST在此例中是localhost。在MacOSX环境中,得把localhost换成$(boot2dockerip):5000。6、列出新镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910Blocalhost:5000/hello-minelatestef5a5gf57b013monthsago910B可以看到,新镜像已经出现在列表中。7、推送新镜像到本地Registry中。$dockerpushlocalhost:5000/hello-mine:latestThepushreferstoarepository[localhost:5000/hello-mine](len:1)e45a5af57b00:Imagealreadyexists31cbccb51277:Imagesuccessfullypushed511136ea3c5a:ImagealreadyexistsDigest:sha256:a1b13bc01783882434593119198938b9b9ef2bd32a0a246f16ac99b01383ef7a8、使用curl命令及DockerRegistry服务APIv2列出Registry中的镜像:$curl-v-XGEThttp://localhost:5000/v2/hello-mine/tags/list*HostnamewasNOTfoundinDNScache*Trying127.0.0.1*Connectedtolocalhost(127.0.0.1)port5000(#0)>GET/v2/hello-mine/tags/listHTTP/1.1>User-Agent:curl/7.35.0>Host:localhost:5000>Accept:*/*> 参考技术D 官方镜像下的简单示例本节中,将创建一个Container来运行Docker的官方Registry镜像。你将推送(Push)一个镜像到这个Registry服务器,然后再从该Registry中拉取(Pull)同一个镜像。这是个很好的练习,有助于理解客户端与本地Registry的基本交互。1、安装Docker。2、从Docker公共Registry中运行hello-world镜像。$dockerrunhello-worldrun命令自动从Docker的官方镜像库中将hello-world镜像pull下来。3、在localhost上启动Registry服务。$dockerrun-p5000:5000registry:2.0这将在DOCKER_HOST上启动一个Registry服务,并在5000端口监听。4、列出镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910B这个列表应当包括一个由先前运行而得来的hello-world镜像。5、为本地repoistory重新标记hello-world镜像。$dockertaghello-world:latestlocalhost:5000/hello-mine:latest此命令使用[REGISTRYHOST/]NAME[:TAG]格式为hello-world:latest重新打标。REGISTRYHOST在此例中是localhost。在MacOSX环境中,得把localhost换成$(boot2dockerip):5000。6、列出新镜像。$dockerimagesREPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZEregistry2.0bbf0b6ffe9233daysago545.1MBgolang1.4121a93c904635daysago514.9MBhello-worldlateste45a5af57b003monthsago910Blocalhost:5000/hello-minelatestef5a5gf57b013monthsago910B可以看到,新镜像已经出现在列表中。7、推送新镜像到本地Registry中。$dockerpushlocalhost:5000/hello-mine:latestThepushreferstoarepository[localhost:5000/hello-mine](len:1)e45a5af57b00:Imagealreadyexists31cbccb51277:Imagesuccessfullypushed511136ea3c5a:ImagealreadyexistsDigest:sha256:a1b13bc01783882434593119198938b9b9ef2bd32a0a246f16ac99b01383ef7a8、使用curl命令及DockerRegistry服务APIv2列出Registry中的镜像:$curl-v-XGEThttp://localhost:5000/v2/hello-mine/tags/list*HostnamewasNOTfoundinDNScache*Trying127.0.0.1*Connectedtolocalhost(127.0.0.1)port5000(#0)>GET/v2/hello-mine/tags/listHTTP/1.1>User-Agent:curl/7.35.0>Host:localhost:5000>Accept:*/*>

docker 部署 thinkjs服务

1.第一步 项目里编写Dockerfile文件 12.16.1 是版本号

FROM mhart/alpine-node:12.16.1

WORKDIR /animaris

COPY package.json /animaris/package.json

RUN npm i --production --registry=https://registry.npm.taobao.org

COPY src /animaris/src

COPY view /animaris/view

COPY www /animaris/www

COPY production.js /animaris/production.js

ENV DOCKER=true

EXPOSE 8360

CMD [ "node", "/animaris/production.js" ]

2. 第二步在项目路径下 执行

sudo docker build -t lizheming/animaris .

3.第三步执行

sudo docker run -itd -p 8360:8360 lizheming/animaris

4. 停止容器

sudo docker stop id

5. 查询容器 删除容器命令

sudo docker ps -a

sudo docker rm id

6.查询镜像 和删除镜像

sudo docker images

sudo docker rmi  id

以上是关于如何部署 Docker Registry 服务的主要内容,如果未能解决你的问题,请参考以下文章

docker-建立私有registry

Docker部署私有仓库(registry&Harbor)

Docker 部署Registry私有仓库+Harbor私有仓库

2023-01-13:joxit/docker-registry-ui是registry的web界面工具之一。请问部署在k3s中,yaml如何写?

2023-01-07:hyper/docker-registry-web是registry的web界面工具之一。请问部署在k3s中,yaml如何写?

2023-01-13:joxit/docker-registry-ui是registry的web界面工具之一。请问部署在k3s中,yaml如何写?