⽣成docker镜像,并打包成tar部署
Docker使⽤
此处使⽤docker-maven-plugin
docker-maven-plugin⽰例
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.1</version>
<!--docker镜像相关的配置信息-->
<configuration>
<forceTags>true</forceTags><!--覆盖相同标签镜像-->
<!--镜像名,这⾥⽤⼯程名-->
<imageName>
${pository}/${istry.name}/${project.artifactId}:${project.version}
</imageName>
<!--                    TAG,这⾥⽤⼯程版本号-->
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<!--镜像的FROM,使⽤java官⽅镜像-->
<baseImage>openjdk:11</baseImage>
<!--该镜像的容器启动后,直接运⾏spring boot⼯程-->
<entryPoint>
["java","-jar","-d=file:/dev/./urandom","-Duser.timezone=GMT+08","/${project.build.finalName}.jar"] </entryPoint>
<runs>
<run>rm -f /etc/localtime</run>
<run>ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</run>
</runs>
<dockerHost>192.168.0.117:2375</dockerHost><!-- docker  -->
<registryUrl>${pository}</registryUrl>
<serverId>docker-yq</serverId>
<pushImage>false</pushImage><!--推送到远程仓库-->
<!--构建镜像的配置信息-->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
注意dockerHost标签:此处采⽤Linux-docker,需要开启Linux上docker的远程连接⾸先到docker的宿主主机⽂件:
vi /lib/systemd/system/docker.service
修改以ExecStart开头的⾏:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375-H unix://var/run/docker.sock
然后重启服务:
sudo systemctl daemon-reload
sudo service docker restart
镜像⽣成
⾸先maven打jar包
在pom⽂件同级下,控制台输⼊
mvn clean package docker:build
此时,在Linux下 输⼊
docker images
可以看到镜像已被导⼊到docker
docker run -d --net=host -v $PWD/log:/log --name cms --restart=always  镜像名/bin/bash
启动镜像
拷出镜像
docker images
查看镜像
docker save 226c4c322bdb > redis.tar  有时候会导致none情况docker save redis -o redis.tar      推荐
加载镜像
docker load -i name
启动镜像
注意
重复镜像,先停⽌容器->删除容器->删除镜像
或者也可以强制删除 命令后加⼀个 -f
docker stop CONTAINER ID
docker rm CONTAINER ID
docker打包镜像docker rmi IMAGE ID
如果遇到加载后的镜像RESPOSITORY TAG 都为none
重命名即可
docker tag 1243bbe02067 name:version

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。