安装私有镜像仓库

最近又发现了一款好用的Maven插件,fabric8io出品的docker-maven-plugin,可以把SpringBoot应用方便的部署到Docker容器中去。该插件可以实现打包镜像、推送到镜像仓库、运行应用等一系列操作,本文将对其用法进行详细介绍,希望对大家有所帮助!

安装私有镜像仓库

 由于之后我们需要推送到私有镜像仓库,我们预先安装好,使用的是Docker公司开发的私有镜像仓库Registry。

  • 下载Registry的Docker镜像;

    docker pull registry:2

  • 使用Docker容器运行Registry服务,需要添加环境变量REGISTRY_STORAGE_DELETE_ENABLED=true开启删除镜像的功能;

    docker run -p 5000:5000 --name registry2 \
    --restart=always \
    -e REGISTRY_STORAGE_DELETE_ENABLED="true" \
    -d registry:2

    修改Docker Daemon的配置文件,文件位置为/etc/docker/daemon.json

    {
      "insecure-registries": ["192.168.85.128:5000"]
    }

    打开docker 2375端口

    vi /usr/lib/systemd/system/docker.service
    
    在ExecStart=/usr/bin/dockerd 后插入 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

     重启Docker服务

    systemctl daemon-reload && systemctl restart docker

    镜像仓库可视化

 由于私有镜像仓库管理比较麻烦,而docker-registry-ui有专门的页面可以方便地管理镜像,所以我们安装它来管理私有镜像仓库。

 

  • 下载docker-registry-ui的Docker镜像;

    docker pull joxit/docker-registry-ui:static

     

  • 使用Docker容器运行docker-registry-ui服务;

    docker run -p 8280:80 --name registry-ui \
    --link registry2:registry2 \
    -e REGISTRY_URL="http://registry2:5000" \
    -e DELETE_IMAGES="true" \
    -e REGISTRY_TITLE="Registry2" \
    -d joxit/docker-registry-ui:static

    我们先来试试私有镜像仓库是否可用,首先下载一个测试用的镜像busybox

    docker pull busybox

    给镜像busybox打上私有仓库的标签,并设置版本为v1.0

    docker tag busybox 192.168.3.101:5000/busybox:v1.0

    之后推送到私有镜像仓库去;

    docker push 192.168.3.101:5000/busybox:v1.0

     

  • 访问docker-registry-ui管理界面,即可查看到busybox镜像,地址:http://192.168.3.101:8280

    idea中使用maven插件进行打包

    <build>
            <plugins>
                <plugin>
                    <groupId>io.fabric8</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.33.0</version>
                    <configuration>
                        <!-- Docker 远程管理地址-->
                        <dockerHost>http://192.168.85.128:2375</dockerHost>
                        <!-- Docker 推送镜像仓库地址-->
                        <pushRegistry>http://192.168.85.128:5000</pushRegistry>
                        <images>
                            <image>
                                <!--由于推送到私有镜像仓库,镜像名需要添加仓库地址-->
                                <name>192.168.85.128:5000/mall/${project.name}:${project.version}</name>
                                <!--定义镜像构建行为-->
                                <build>
                                    <!--定义基础镜像-->
                                    <from>java:8</from>
                                    <args>
                                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                                    </args>
                                    <!--定义哪些文件拷贝到容器中-->
                                    <assembly>
                                        <!--定义拷贝到容器的目录-->
                                        <targetDir>/</targetDir>
                                        <!--只拷贝生成的jar包-->
                                        <descriptorRef>artifact</descriptorRef>
                                    </assembly>
                                    <!--定义容器启动命令-->
                                    <entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
                                    <!--定义维护者-->
                                    <maintainer>macrozheng</maintainer>
                                </build>
                            </image>
                        </images>
                    </configuration>
                </plugin>
            </plugins>
        </build>
  •  首先mvn clean package

  • mvn package docker:build

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值