Docker私有仓库搭建并上传代码

在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry私有仓库搭建。

IP地址:192.168.184.135

1、私有仓库搭建与配置

(1)拉取私有仓库镜像

docker pull registry

(2)启动私有仓库镜像

docker run -di --name=registry -p 5000:5000 registry

 

(3)打开浏览器输入地址http://192.168.71.129:5000/v2/_catalog看到{"repositiories":[]}表示私有仓库搭建成功并且内容为空。

(4)修改daemon.json

vi /etc/docker/daemon.json

添加以下内容,保存并退出

{"insecure‐registries":["192.168.71.129:5000"]}

此步用于让docker信任私有仓库地址

 

 

(5)重启docker服务

systemctl restart docker

 

2、镜像上传至私有仓库

(1)标记此镜像为私有仓库的镜像

docker tag jdk1.8 192.168.71.129:5000/jdk1.8

(2)再次启动私服容器

docker start registry

(3)上传标记的镜像

docker push 192.168.71.129:5000/jdk1.8

3、配置DockerMaven插件

(1)手动部署

首先源码打成jar或war包,上传至虚拟机并拷贝至JDK容器。

(2)通过Maven插件自动部署

对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以需要一种更加简便的方式,Maven插件自动部署。

(3)修改宿主机的docker配置,让其可以远程访问:

vi /usr/lib/systemd/system/docker.service

其中ExecStar=后添加配置-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

修改如下:

 

(4)刷新配置,重启服务:

systemctl daemon-reload

systemctl restart docker

docker start registry

(5)在项目的pom文件中添加配置

<build>
    <finalName>mysql-client</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <imageName>192.168.71.129:5000/${project.artifactId}:${project.version} </imageName>
                <baseImage>jdk1.8</baseImage>
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory} </directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
                <dockerHost>http://192.168.71.129:2375</dockerHost>
            </configuration>
        </plugin>
    </plugins>
</build>

以上配置会自动生成Dockerfile

FROM jdk1.8

ADD mysql-client.jar /

ENTRYPOINT["java","-jar","/mysql-client.jar"]

(6)在Idea中的Terminal,输入以下命令,并打包和上传镜像

mvn clean package docker:build -DpushImage

浏览器访问:http://192.168.71.129:5000/v2/_catalog,输出

{"repositories":["tensquare_eureka"]},说明上传成功。

(7)进入宿主机,查看镜像

docker images

(8)启动容器

docker run -di --name=mysql-client -p 8762:8762 192.168.71.129:5000/mysql-client:0.0.1-SNAPASHOT

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值