容器镜像生成记

文章目录

  • 概述
  • 准备工作
    • 镜像仓库注册
    • 开通命名空间
    • 开通访问凭证
  • 新建Java工程
    • 引入docker-maven-plugin插件
    • 编辑Dockerfile 文件
    • 执行打包命令
    • 简单测试
    • 一。 配置镜像上传账号
    • 二。 配置docker环境


概述

容器docker/k8s发布已有一段时间,不少小伙伴开始上手实践。下面以一个简单的应用为例。来说明如何生成镜像并推送至镜像仓库。

准备工作

镜像仓库注册

以最常见的aliyun镜像仓库为例:
支付宝登录aliyun官网,搜索容器镜像服务,点击进入管理控制台。
容器镜像生成记_第1张图片
容器镜像生成记_第2张图片
点击进入个人实例(未开通的伙伴,请自行开通该服务)

开通命名空间

在这里插入图片描述

开通访问凭证

在这里插入图片描述

新建Java工程

我们以 https://gitee.com/00fly/docker-demo 为例.

引入docker-maven-plugin插件

pom.xml 插件部分


			
			<plugin>
				<groupId>io.fabric8groupId>
				<artifactId>docker-maven-pluginartifactId>
				<version>0.41.0version>
				<executions>
					<execution>
						<phase>packagephase>
						<goals>
							<goal>buildgoal>
							<goal>pushgoal>
						goals>
					execution>
				executions>
				<configuration>
					
					

					
					<pushRegistry>${docker.hub}pushRegistry>
					<images>
						<image>
							
							<name>${docker.hub}/00fly/${project.artifactId}:${project.version}-UTC-${maven.build.timestamp}name>
							
							<build>
								<dockerFileDir>${project.basedir}dockerFileDir>
							build>
						image>
						<image>
							<name>${docker.hub}/00fly/${project.artifactId}:${project.version}name>
							<build>
								<dockerFileDir>${project.basedir}dockerFileDir>
							build>
						image>
					images>
				configuration>
			plugin>

同时需要在 properties 节点部分定义变量docker.hub、maven.build.timestamp


	<properties>
		<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
		<maven.build.timestamp.format>yyyyMMdd-HHmaven.build.timestamp.format>
		<docker.hub>registry.cn-shanghai.aliyuncs.comdocker.hub>
		<java.version>1.8java.version>
		<skipTests>trueskipTests>
	properties>

编辑Dockerfile 文件

#基础镜像
FROM openjdk:8-jre-alpine

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

#把你的项目war包引入到容器的root目录下
COPY target/*.war /app.war

CMD ["--server.port=8080"]

#项目的启动方式
#ENTRYPOINT ["java","-Xmx400m","-Xms400m","-Xmn150m","-Xss1024k","-jar","/app.war", "--spring.profiles.active=prod"]
ENTRYPOINT ["java","-jar","/app.war"]

执行打包命令

mvn clean package

执行结果如下
容器镜像生成记_第3张图片
登录阿里云镜像仓库查看,镜像也已经上传成功!
容器镜像生成记_第4张图片

简单测试

docker run -p 8080:8080 registry.cn-shanghai.aliyuncs.com/00fly/docker-demo:0.0.1

有的同学按上面的步骤实践,就会疑惑,我的怎么报错了!!
其实,这边还有重要的两步没讲。

一。 配置镜像上传账号

还记的镜像仓库-开通访问凭证 那一步设置的密码么。
我们打开本地maven的配置文件settings.xml
容器镜像生成记_第5张图片
注意这边的id参数要跟pom.xml 文件docker.hub取值一致。密码最好以密文方式存储,具体加密方法可参考:
https://blog.csdn.net/u013648164/article/details/81005876

二。 配置docker环境

docker环境配置有2种方式:

  1. 使用本地docker环境,windows系统可以安装docker desktop
  2. 启用远程docker环境,需要在pom.xml文件打开如下配置,并在带docker环境的linux服务器上打开相关配置,特别要注意安全问题在这里插入图片描述
    centos服务器执行
vim /usr/lib/systemd/system/docker.service

执行命令后在如图位置添加 -H tcp://0.0.0.0:2375在这里插入图片描述
之后重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

通过浏览器访问 http://ip:2375/version 正常说明远程docker配置成功
容器镜像生成记_第6张图片

为了安全起见,可在服务器安全组设置只针对特定IP开放2375端口
容器镜像生成记_第7张图片

有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

你可能感兴趣的:(Docker,云服务器,docker,容器)