(一) 镜像管理
镜像管理以Jib为例git
1. 建立镜像
SpringBoot项目(Jar包)
在pom.xml中添加以下打包插件github
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.0.1</version>
<configuration>
<from>
<image>openjdk:alpine</image>
</from>
<to>
<image>localhost:5000/my-image:built-with-jib</image>
<credHelper>osxkeychain</credHelper>
<tags>
<tag>tag2</tag>
<tag>latest</tag>
</tags>
</to>
<container>
<jvmFlags>
<jvmFlag>-Xms512m</jvmFlag>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xmy:flag=jib-rules</jvmFlag>
</jvmFlags>
<mainClass>mypackage.MyApp</mainClass>
<args>
<arg>some</arg>
<arg>args</arg>
</args>
<ports>
<port>1000</port>
<port>2000-2003/udp</port>
</ports>
<labels>
<key1>value1</key1>
<key2>value2</key2>
</labels>
<format>OCI</format>
</container>
</configuration>
</plugin>
复制代码
SpringMV项目(War包)
在pom.xml中添加以下打包插件web
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.0.1</version>
<configuration>
<from>
<image>openjdk:alpine</image>
</from>
<to>
<image>localhost:5000/my-image:built-with-jib</image>
<tags>
<tag>tag2</tag>
<tag>latest</tag>
</tags>
</to>
<container>
<appRoot>/usr/local/tomcat/webapps/ROOT</appRoot>
</container>
</configuration>
</plugin>
复制代码
注意:1. 以上两种状况推荐添加<tag>latest</tag>
,这样更新镜像的时候不用指定版本就能够获取最新的镜像了docker
2. 绑定jib:build
到package
把mvn compile jib:build
绑定到mvn package
tomcat
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.0.1</version>
<configuration>
...
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
复制代码
3. 执行mvn package
执行mvn package
就会建立镜像并把镜像上传至镜像仓库bash
(二)运行
1. 下拉镜像
docker pull 镜像
复制代码
2. 运行镜像
docker run -p 端口:8080 -d --name 实例化的容器名称 镜像名称
复制代码
-p: 把容器的8080端口映射到本机的某个端口 -d: 后台运行,不在console打印日志 --name: 为实例化的容器指定名称app
脚本webapp
docker pull 镜像
docker run -p 端口:8080 -d --name 实例化的容器名称 镜像名称
复制代码
参考:jvm