zoukankan      html  css  js  c++  java
  • 使用dockerfile-maven-plugin发布docker到私有仓库

    要想拥有私有docker仓库,需要安装registry镜像,最新版是2.0,具体可以看文档:https://docs.docker.com/registry/

    1. docker pull registry

    2. docker run -d -p 5000:5000 --restart=always --name registry registry:2

    使用http://localhost:5000/v2/测试,返回"{}",表示安装成功。

    使用maven命令(mvn clean package)打包时,报:Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project config: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused

    1. 首先确保,配置的docker.image.prefix时正确的,即配置了绑定仓库。

    1     <properties>
    2         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    3         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    4         <java.version>1.8</java.version>
    5         <maven.test.skip>true</maven.test.skip>
    6         <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    7         <dockerfile.maven.version>1.4.3</dockerfile.maven.version>
    8         <docker.image.prefix>172.27.73.xx:5000</docker.image.prefix>
    9     </properties>

    2. 编辑/etc/sysconfig/docker文件,我安装的docker ce,没有发现这个文件,如果有,则:

    sudo vi /etc/sysconfig/docker
    
    //添加下面这行
    other_args="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
    
    //保存
    :wq!
     
    //重启docker服务
    service docker restart

    3.  在windows系统环境变量中新建DOCKER_HOST值为tcp://{docker_ip}:2375,将这里的{docker_ip},替换为docker所在的centos服务器IP或主机名(用主机名,需要windows配置hosts),可能需要重启系统。

    4. 修改/usr/lib/systemd/system/docker.service文件

    sudo vi /usr/lib/systemd/system/docker.service
    //在ExecStart这一行后面加上(这里就写4个0,别改成自己的ip) 
    -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
     
    改完后效果如下
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
     
    :wq!
    保存退出
    
    重新加载配置文件 systemctl daemon-reload
    重启docker :service docker restart
    这样才可以是/etc/default/docker中的配置项生效

    重写打包,发布镜像,报:

    Caused by: com.spotify.docker.client.exceptions.DockerException: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: com.spotify.docker.client.shad
    ed.org.apache.http.conn.HttpHostConnectException: Connect to 172.27.73.xx:2375 [/172.27.73.xx] failed: Connection timed out: connect

    我们首先查询docker所在虚拟机在监听哪些端口,使用命令:

    netstat -tlunp

    显示:

    tcp6       0      0 :::2375                 :::*                    LISTEN      -

    2375端口,已在监听。

    那很有可能时防火墙的问题,在CentOS7中,默认会打开firewalld防火墙,如果防火墙打开后,默认情况下只会监听在22号端口,也就是说主机对外暴露的端口只有22。

    使用如下命令:

    sudo iptables-save

    查看防火墙暴漏的对外端口,发现2373端口没有对位暴漏。

    需要增加2375端口对外暴漏,使用如下命令:

    //添加端口
    sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
    //重载防火墙
    sudo firewall-cmd --reload

    看到sucess字样后,再使用iptables-save命令查看端口,可以看到,对外放开的端口增加了2375端口。

    这次重新打包,发布成功。

    使用命令:

    docker images

    查看到新打包的镜像,注意172.27.73.xx:5000开头的REPOSITORY列,已添加。

  • 相关阅读:
    JVM学习笔记(三)------内存管理和垃圾回收【转】
    JVM学习笔记(二)------Java代码编译和执行的整个过程【转】
    JVM学习笔记(一)------基本结构【转】
    Java程序编译和运行的过程【转】
    linux C判断文件是否存在【转】
    Java编译那些事儿【转】
    CTSC1999补丁VS错误题解
    ASP.NET MVC学前篇之Ninject的初步了解
    setSingleChoiceItems和setPositiveButton两者触发时期
    B. Sereja and Mirroring
  • 原文地址:https://www.cnblogs.com/feiyujun/p/10798500.html
Copyright © 2011-2022 走看看