详解docker私有仓库搭建与使用实战

 更新时间:2019年02月13日 10:24:14   作者:博陵精骑  
这篇文章主要介绍了详解docker私有仓库搭建与使用实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

hub.docker.com上可以保存镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案,今天我们就来实战搭建私有docker仓库吧;

环境规划

需要两台机器:docker私服仓库的server和使用docker的普通机器,这两个机器都是ubuntu16版本的server,ip信息如下:

机器名 ip 功能
docker-registry 192.168.119.148 docker私有仓库服务器
docker-app 192.168.119.155 运行docker服务的普通服务器

准备机器

本次实战中,上述两台机器是vmware上创建的两个虚拟机,都安装了docker服务,详细的创建和安装过程,请参照《rancher下的kubernetes之一:构建标准化vmware镜像》,记得在vmware中给两个镜像把名字分别改成“docker-registry”和“docker-app”,以免后面搞错了;

虚拟机启动后,请先修改/etc/hostname文件,将两个机器的hostname分别修改成“docker-registry”和“docker-app”,然后用reboot命令重启;

安装私有仓库

登录docker-registry机器(推荐使用SecureCRT);

执行以下命令,会启动一个registry容器,该容器用于提供私有仓库的服务:

docker run --name docker-registry -d -p 5000:5000 registry

执行docker ps命令看一下容器情况,如下图:

 

容器正常启动,对外提供服务通过5000端口映射到docker-registry的5000端口;

执行命令curl -X GET http://127.0.0.1:5000/v2/_catalog,收到的响应如下,是个json对象,其中repositories对应的值是空的json数组,表示目前仓库里还没有镜像:

{"repositories":[]}

OK,私有仓库已经创建和启动完毕了,接下来试试如何使用吧;

支持http协议推送

正常情况下,应用服务器推送镜像到仓库用的是https,此处我们通过命令行来测试推送用的是普通的http,所以需要修改docker的启动参数,使之允许以http协议工作;

执行推送镜像的机器是docker-app,所以登录到此机器(推荐使用SecureCRT);

修改/etc/default/docker文件,加入以下红框内容:

再修改 /lib/systemd/system/docker.service,以下红框中的内容,第一行为新增,第二行为修改:

执行以下命令,重新加载配置信息再重启docker服务:

systemctl daemon-reload;service docker restart

推送镜像到私有仓库

接下来我们在docker-app先下载一个镜像,再将这个镜像推送到私有仓库中去;

登录docker-app机器(推荐使用SecureCRT);

执行命令docker pull tomcat,从hub.docker.com下载最新版本的tomcat镜像,如下图:

下载完毕后,执行docker images查看镜像的信息,如下图:

如上图红框所示,这个镜像的ID是3dcfe809147d,所以我们执行以下命令,给这个镜像添加一个带有私有仓库IP的TAG,这样后面才能成功推送到私有仓库:

docker tag 3dcfe809147d 192.168.119.148:5000/tomcat

再执行docker images查看镜像的信息,如下图,出现了一个新的镜像,REPOSITORY是192.168.119.148:5000/tomcat:

执行以下命令进行推送:

docker push 192.168.119.148:5000/tomcat

可以看到顺利进行中,如下图:

推送成功后,在docker-app和docker-registry上分别执行curl -X GET http://192.168.119.148:5000/v2/_catalog,查看私有仓库的镜像信息,都能见到如下内容:

使用私有仓库的镜像

在docker-app机器上,先执行以下命令将本地镜像删掉:

docker rmi 192.168.119.148:5000/tomcat tomcat

再执行以下命令,用私服上的镜像来创建一个容器,映射8080端口:

docker run --name tomcat001 -p 8080:8080 -idt 192.168.119.148:5000/tomcat

本地没有镜像就去私服下载,如下图:

docker-app的IP是192.168.119.155,所以在当前电脑上打开浏览器,输入:192.168.119.155:8080,可以看到下图熟悉的tomcat欢迎页:

至此本次实战就结束了,希望能对您的私有仓库搭建有所帮助。也希望大家多多支持脚本之家。

相关文章

  • Dockerfile文件详细介绍

    Dockerfile文件详细介绍

    Dockerfile 是一个文本文件,里面包含组装新镜像时用到的基础镜像和各种指令。使用dockerfile 文件来定义镜像,然后运行镜像,启动容器。本文详细介绍了Dockerfile文件,感兴趣的小伙伴可以参考一下
    2023-04-04
  • 教你在docker 中搭建 PHP8 + Apache 环境的过程

    教你在docker 中搭建 PHP8 + Apache 环境的过程

    这篇文章主要介绍了docker中搭建 PHP8 + Apache 环境,文章以安装 pdo-mysql 扩展为例介绍php安装扩展的详细过程,需要的朋友可以参考下
    2022-03-03
  • Docker数据存储之tmpfs mounts详解

    Docker数据存储之tmpfs mounts详解

    今天小编就为大家分享一篇关于Docker数据存储之tmpfs mounts详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 减少Docker镜像大小的10个优化技巧

    减少Docker镜像大小的10个优化技巧

    当使用Docker时,镜像大小是一个很大的问题,下面这篇文章主要给大家介绍了关于减少Docker镜像大小的10个优化技巧,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Docker部署springboot项目到腾讯云的实现步骤

    Docker部署springboot项目到腾讯云的实现步骤

    本文主要介绍了Docker部署springboot项目到腾讯云的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Docker 拉取镜像及标签操作 pull | tag

    Docker 拉取镜像及标签操作 pull | tag

    这篇文章主要介绍了Docker 拉取镜像及标签操作 pull | tag,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Ubuntu 16.04中Docker的安装和代理配置教程

    Ubuntu 16.04中Docker的安装和代理配置教程

    这篇文章主要给大家介绍了在Ubuntu 16.04中Docker的安装和代理配置的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-05-05
  • 使用Docker部署Tomcat的实现示例

    使用Docker部署Tomcat的实现示例

    在本地编写好了Spring项目,为了实现能够随时地访问,所以需要将项目部署到服务器,本文主要介绍了使用Docker部署Tomcat的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • 详解docker 允许主机ssh连接到docker容器中

    详解docker 允许主机ssh连接到docker容器中

    本篇文章主要介绍了详解docker 允许主机ssh到docker容器中,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 详解docker nginx 容器启动挂载到本地

    详解docker nginx 容器启动挂载到本地

    这篇文章主要介绍了详解docker nginx 容器启动挂载到本地,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07

最新评论