Docker实战(三)

栏目: 编程工具 · 发布时间: 4年前

内容简介:我们都知道如果用 docker hub 来做仓库会很慢,因为docker hub 服务器在国外,那么现在有必要讲一下如何搭建一个 docker 私有仓库,并进行快速部署。官方有个镜像叫 「registry」,它可以启动一个私有仓库,获取官方 registry 镜像命令如下:将 registry 镜像 pull 到本地后,通过镜像启动一个 registry 私有库容器,私有库地址会在容器内的 /var/lib/registry 路径下,如果需要将私有库挂载在本地路径下,还需要 -v 参数:

我们都知道如果用 docker hub 来做仓库会很慢,因为docker hub 服务器在国外,那么现在有必要讲一下如何搭建一个 docker 私有仓库,并进行快速部署。

启动 registry 私有库容器

官方有个镜像叫 「registry」,它可以启动一个私有仓库,获取官方 registry 镜像命令如下:

docker pull registry

将 registry 镜像 pull 到本地后,通过镜像启动一个 registry 私有库容器,私有库地址会在容器内的 /var/lib/registry 路径下,如果需要将私有库挂载在本地路径下,还需要 -v 参数:


 

docker run -d -it \

-p 5000:5000 \

-v /data/registry/:/var/lib/registry \

--name myregistry registry

push 镜像到私有库

docker镜像名字命名规律:

<仓库地址>/<仓库名字>:<标签>

所以需要将本地镜像改成私有库地址的镜像:

docker tag objcoding/docker-maven-deploy:0.0.4 119.29.xxx.232:5000/docker-maven-deploy:0.0.4

Docker 默认不允许 http 方式 push 镜像,如果要用 http 来推送,则需要在 /etc/docker/ 目录下创建daemon.json,内容如下:


 

{

"registry-mirror": [

"https://registry.docker-cn.com"

],

"insecure-registries": [

"119.29.xxx.232:5000"

]

}

执行 push 命令:

docker push 119.29.xxx.232:5000/docker-maven-deploy:0.0.4

push 过程:

Docker实战(三)

从私有库中 pull 镜像

前面我们已经将私有库挂载在本地目录了,查看一下刚刚 push 的镜像是否存在:

Docker实战(三)

发现刚刚 push 的镜像已经在本地目录了,这时我们需要将它 pull 下来:

docker pull 119.29.xxx.232:5000/docker-maven-deploy:0.0.4

运行镜像:

docker run -d -p 8085:8085 --name docker-maven-deploy 127.0.0.1:5000/docker-maven-deploy:0.0.4

docker-maven-plugin

以前打包 docker 镜像的时候还要手动 docker build,现在利用 docker-maven-plugin 插件打包 docker 镜像,使打包镜像步骤进一步简化。

在 maven pom.xml 中加入 docker-maven-plugin 插件:


 

<plugin>

<groupId>com.spotify</groupId>

<artifactId>docker-maven-plugin</artifactId>

<version>0.4.13</version>

<configuration>

<!-- objcoding/docker-maven-deploy打包后的名称,0.0.2镜像 TAG -->

<imageName>objcoding/docker-maven-deploy:0.0.2</imageName>

<!-- Dockerfile 所在路径 --><dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>

<resources>

<resource>

<!-- target 所在路径 -->

<targetPath>/</targetPath>

<directory>${project.build.directory}</directory>

<!-- 打包后的 springboot jar 包文件名称 -->

<include>${project.build.finalName}.jar</include>

</resource>

</resources>


<!-- docker仓库 -->

<!-- <serverId>my-docker-repository</serverId> -->

</configuration>

</plugin>

在 src/main/resources/docker/ 中添加 Dockerfile:


 

From java:8


MAINTAINER zhangchenghui zhangchenghui.dev@gmail.com


ADD docker-maven-sample-1.0-SNAPSHOT.jar /app.jar


EXPOSE 8080


ENTRYPOINT [ "java", "-jar", "app.jar" ]

在项目根目录下执行一下命令:

mvn clean install docker:build

出现以下编译后的信息:

Docker实战(三)

获取 Demo 源码:

docker-deploy-tutorial [1]

References

[1] docker-deploy-tutorialhttps://github.com/objcoding/docker-deploy-tutorial

近期热文

我对支付平台架构设计的一些思考

聊聊Tomcat的架构设计

从源码的角度解析线程池运行原理

RocketMQ消息发送的高可用设计

深度解析RocketMQ Topic的创建机制

RocketMQ源码分析之路由中心

mybatis-plus源码分析之 sql 注入器

钟同学,this is for you!

Mybatis-spring源码分析之注册Mapper Bean

基于Jenkins Pipeline自动化部署

Dubbo服务暴露之注册地址和端口

Dubbo全链路追踪日志的实现

Docker实战(三)

长按可以订阅


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

比特币

比特币

李钧、长铗 / 中信出版社 / 2014-1-1 / 39.00元

2009年,比特币诞生。比特币是一种通过密码编码,在复杂算法的大量计算下产生的电子货币。虽然是虚拟货币,比特币却引起了前所未有的全球关注热潮。 这一串凝结着加密算法与运算能力的数字不仅可以安全流通、换取实物,1比特币价值甚至曾高达8 000元人民币。有研究者认为比特币具备打破几千年来全球货币由国家垄断发行的可能性。在不经意间,比特币引起的金融新浪潮已悄然成型。 虚拟货币并不是新鲜事物,......一起来看看 《比特币》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具