网站开发工具 售价,html代码快捷键,seo优化服务是什么,衡水网站设计前言
如下所示#xff0c;建议使用 Dockerfile Maven 插件#xff0c;但该插件也停止维护更新了。因此先暂时使用docker-maven-plugin插件。 一、开启Docker服务器的远程访问
1.1 开启2375远程访问
默认的dokcer是不支持远程访问的#xff0c;需要加点配置#xff0c;开…前言
如下所示建议使用 Dockerfile Maven 插件但该插件也停止维护更新了。因此先暂时使用docker-maven-plugin插件。 一、开启Docker服务器的远程访问
1.1 开启2375远程访问
默认的dokcer是不支持远程访问的需要加点配置开启Docker的远程访问
# 首先查看docker配置文件所在位置
systemctl status docker# 会输出如下内容
● docker.service - Docker Application Container EngineLoaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Thu 2020-12-17 14:22:23 CST; 18min agoDocs: http://docs.docker.comMain PID: 25113 (dockerd)
确定docker配置文件位置在/etc/systemd/system/docker.service
然后编辑修改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 \
其中2375端口为docker远程服务端口包含了docker可视化工具portainer以及远程上传镜像的功能。
1.2 添加harbor镜像配置
编辑docker的配置文件
vi /etc/docker/daemon.json
# 添加harbor镜像地址
{ insecure-registries: [192.168.0.20:81]
}
1.3 重启docker服务
# 后台配置重新加载
systemctl daemon-reload
# 重启docker服务
systemctl restart docker.service
# 此处可能会出现docker无法启动情况可能是由于docker.service配置文件修改错误重新修改一次然后重新执行上述命令即可#查看配置的端口号2375是否开启非必要
netstat -nlpt
1.4 验证是否开启成功
查看端口是否开启
#如果找不到netstat命令使用yum install net-tools安装
[rootadministrator ~]# netstat -antp | grep dockerd
tcp6 0 0 :::2375 :::* LISTEN 4514/dockerd
直接curl看是否生效测试通过localhost是否能使用Docker Engine API
curl http://127.0.0.1:2375/info
curl http://localhost:2375/version
访问http://ip:2375/version测试远程能否通过主机IP使用Docker Engine API 二、IDEA-Maven打包镜像
2.1 修改maven的配置文件settings.xml
在maven的配置文件中添加harbor私服的用户名及密码 serversserveridharbor/idusernameharbor/usernamepassword123456/passwordconfigurationemail123456aliyun.com/email/configuration/server
/servers
2.2 修改SpringBoot项目中的pom.xml
添加属性配置属性配置在后面的插件配置里有引用这个
docker.repostory 是docker私服地址harbor配置完默认端口就是80可以不带端口号。但是我将之改成81了docker.registry.name 即是在harbor中配置的镜像仓库名必须一致这里我配的是test因为harbor中配置的镜像仓库名也是test。
properties!--docker插件--!-- docker私服地址,Harbor配置完默认地址就是80,默认不带端口号。但是我这里是81 --docker.repostory192.168.10.11:81/docker.repostory!--项目名,需要和Harbor中的项目名称保持一致 --docker.registry.nametest/docker.registry.name
/properties 3.3 docker-maven-plugin插件配置
serverId 指定之前在maven的settings.xml中配置的server节点这样maven会去找其中配置的用户名密码和邮箱registryUrl 指定上面配置的properties属性即是harbor私服的访问url注意我设置的使用81端口默认是80端口imageName 指定上传harbor私服的镜像名必须和harbor上的url、镜像仓库名保持一致。其中的docker.registry.name就是上面配置的properties属性
3.3.1 方式一:纯插件操作方式构建镜像
buildplugins!-- 解决资源文件的编码问题 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-resources-plugin/artifactIdconfigurationencodingUTF-8/encoding/configuration/plugin!-- maven打source包 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-source-plugin/artifactIdexecutionsexecutionidattach-sources/id!--phaseverify/phase--goals!--jar, jar-no-fork--goaljar/goal/goals/execution/executions/plugin!-- spring Boot在编译的时候, 是有默认JDK版本的, 这里自定义指定JDK版本 --pluginartifactIdmaven-compiler-plugin/artifactIdconfigurationsource11/sourcetarget11/targetencodingUTF-8/encoding/configuration/plugin!--拷贝依赖jar到指定的目录--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-dependency-plugin/artifactIdexecutionsexecutionidcopy-dependencies/idphasepackage/phasegoalsgoalcopy-dependencies/goal/goalsconfigurationoutputDirectory${project.build.directory}/lib/outputDirectoryoverWriteReleasesfalse/overWriteReleasesoverWriteSnapshotsfalse/overWriteSnapshotsoverWriteIfNewertrue/overWriteIfNewer/configuration/execution/executions/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdconfigurationarchivemanifest!-- maven-jar-plugin用于生成META-INF/MANIFEST.MF文件的部分内容 --addClasspathtrue/addClasspath!-- 指定依赖包所在目录。 --classpathPrefixlib//classpathPrefix!-- 指定MANIFEST.MF中的Main-Class --mainClassorg.fiend.SpringBootDockerApp/mainClassuseUniqueVersionsfalse/useUniqueVersions/manifest/archiveexcludes!--exclude*.properties/exclude--!--exclude*.yml/exclude--!--exclude*.xml/exclude--!--excludeorg/fiend/controller/HomeController.class/exclude--/excludes/configuration/plugin!-- docker --plugingroupIdcom.spotify/groupIdartifactIddocker-maven-plugin/artifactIdversion1.2.2/versionexecutionsexecutionidbuild-image/id!--用户只需执行mvn package, 就会自动执行mvn docker:build--phasepackage/phasegoalsgoalbuild/goal/goals/execution/executionsconfiguration!--maven的 settings.xml文件添加如下配置:serveridharbor/idusernameadmin/usernamepasswordadmin123/passwordconfigurationemailadminexample.org/email/configuration/server--serverIdharbor/serverIdregistryUrlhttp://${docker.repostory}/registryUrl!--必须配置dockerHost标签除非配置系统环境变量DOCKER_HOST--dockerHosthttp://192.168.31.133:2375/dockerHost!--指定基础镜像jdk1.8--!--baseImagejdk:1.8/baseImage--baseImagek8s-harbor:10001/my-project/openjdk11:jre-11.0.12_7-alpine/baseImage!--Building image 192.168.0.20/demo1--imageName${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}/imageName!--指定标签 这里指定的是镜像的版本默认版本是latest--imageTagsimageTag${project.version}/imageTag/imageTags!-- 指定 Dockerfile 路径--!--镜像制作人本人信息 --!--maintainer1090239782qq.com/maintainer--!--切换到工作目录--workdir/home/workdir!--执行容器运行的命令添加如下指令, 打包成镜像后会自动启动容器--!--runs--!-- runsed -i s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g /etc/apk/repositories/run--!-- runapk update/run--!-- runapk add tzdata/run--!-- runcp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime/run--!-- runecho Asia/Shanghai /etc/timezone/run--!--/runs--cmd[java, -version]/cmd!--${project.build.finalName}.jar是打包后生成的jar包的名字--entryPoint[java, -jar, -Xms896m, -Xmx896m, ${project.build.finalName}.jar]/entryPoint!--exposes--!-- lt;!ndash; 指定容器内部端口, 可以不写, 不写默认是项目中pom文件的端口 ndash;gt;--!-- expose8080/expose--!--/exposes--!-- jar包位置--resourcesresourcetargetPath/home/targetPath!-- target目录下--directory${project.build.directory}/directory!--通过jar包名找到jar包--include${project.build.finalName}.jar/include/resourceresourcetargetPath/home/lib/targetPath!-- target目录下--directory${project.build.directory}/lib/directory!--include*.jar/include--/resource/resources/configuration/plugin/plugins/build
接下来只要先点击clean清除之前的所有打包的文件然后再点击package打包文件即可完成镜像的构建真正的一键部署 由于将 phasepackage/phase 注释掉了因此需要执行 docker:build 命令构建镜像 如果要将镜像推送至Harbor仓库执行docker:push命令: 删除docker镜像命令(不是删除Harbor中的镜像), docker:removeImage:
重新构建镜像时记得先执行此命令删除原来的镜像。 到此镜像构建成功接下来使用Idea的Docker插件创建容器跑起来(或者去Docker机器执行命令行) 通过ip访问
此种方式直接通过Maven的package命令即可实现镜像的制作但是要推送镜像到harbor私服还需执行docker:push即
点击push将镜像推送到harbor私服中 3.3.2 方式二:结合Dockerfile文件构建镜像
plugingroupIdcom.spotify/groupIdartifactIddocker-maven-plugin/artifactIdversion1.0.0/versionconfigurationserverIdmy-hub/serverIdregistryUrlhttp://${docker.repostory}/registryUrl!--必须配置dockerHost标签除非配置系统环境变量DOCKER_HOST--dockerHosthttp://192.168.10.11:2375/dockerHost!--Building image 192.168.10.11/demo1--imageName${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}/imageName!-- 指定 Dockerfile 路径--dockerDirectory${basedir}//dockerDirectory!-- jar包位置--resourcesresourcetargetPath/ROOT/targetPath!-- target目录下--directory${project.build.directory}/directory!--通过jar包名找到jar包--include${pack-name}/include/resource/resources/configuration
/plugin
那么Dockerfile文件中的jar包名相应需要修改
FROM java:8
WORKDIR /ROOT
ADD /ROOT/demo1-2.jar /ROOT/
ENTRYPOINT [java, -jar, demo1-2.jar]
点击pakage打包target 上生成了springboot工程的jar包
完了之后点击docker bulid 构建工程镜像 然后点击push将镜像推送到harbor私服中 3.4 docker-maven-plugin操作容器
此部分内容参考
掘金MacroZheng还在手动部署SpringBoot应用试试这个自动化插件 - 掘金docker-maven-plugin不仅可以操作镜像还可以操作容器比如我们以前需要使用如下Docker命令来运行容器
docker run -p 8080:8080 —name mall-tiny-fabric \
—link mysql:db \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny-fabric/logs:/var/logs \
-d 192.168.3.101:5000/mall-tiny/mall-tiny-fabric:0.0.1-SNAPSHOT
现在我们只需在插件中配置即可在image节点下添加run节点可以定义容器启动的行为
!--在image节点下添加run节点可以定义容器启动的行为, 该配置不会自动启动打包后的镜像--
image!--定义容器启动行为--run!--设置容器名可采用通配符--containerNamePattern${project.artifactId}/containerNamePattern!--设置端口映射--portsport8600:8600/port/ports!--设置容器间连接--!--links--!-- linkmysql:db/link--!--/links--!--设置容器和宿主机目录挂载--!--volumes--!-- bind--!-- volume/etc/localtime:/etc/localtime/volume--!-- volume/mydata/app/${project.artifactId}/logs:/var/logs/volume--!-- /bind--!--/volumes--/run
/image
之后直接使用docker:start命令即可启动了
# mvn docker:start
[rootlinux-local mydata]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95ce77c0394b 192.168.3.101:5000/mall-tiny/mall-tiny-fabric:0.0.1-SNAPSHOT “java -jar /mall-tin…” 32 seconds ago Up 31 seconds 0.0.0.0:8080-8080/tcp mall-tiny-fabric
停止容器使用docker:stop命令即可
mvn docker:stop
删除容器使用docker:remove命令是不是很方便
mvn docker:remove
文章转载自: http://www.morning.wptdg.cn.gov.cn.wptdg.cn http://www.morning.kmwsz.cn.gov.cn.kmwsz.cn http://www.morning.pcjw.cn.gov.cn.pcjw.cn http://www.morning.krlsz.cn.gov.cn.krlsz.cn http://www.morning.rdymd.cn.gov.cn.rdymd.cn http://www.morning.wrkhf.cn.gov.cn.wrkhf.cn http://www.morning.bgpch.cn.gov.cn.bgpch.cn http://www.morning.cypln.cn.gov.cn.cypln.cn http://www.morning.czcbl.cn.gov.cn.czcbl.cn http://www.morning.iqcge.com.gov.cn.iqcge.com http://www.morning.leyuhh.com.gov.cn.leyuhh.com http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.mxdhy.cn.gov.cn.mxdhy.cn http://www.morning.ykgkh.cn.gov.cn.ykgkh.cn http://www.morning.fnnkl.cn.gov.cn.fnnkl.cn http://www.morning.hnmbq.cn.gov.cn.hnmbq.cn http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn http://www.morning.mtqqx.cn.gov.cn.mtqqx.cn http://www.morning.rjnky.cn.gov.cn.rjnky.cn http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn http://www.morning.hxcuvg.cn.gov.cn.hxcuvg.cn http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.blfgh.cn.gov.cn.blfgh.cn http://www.morning.lcbnb.cn.gov.cn.lcbnb.cn http://www.morning.xlztn.cn.gov.cn.xlztn.cn http://www.morning.qrzqd.cn.gov.cn.qrzqd.cn http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn http://www.morning.rksnk.cn.gov.cn.rksnk.cn http://www.morning.krqhw.cn.gov.cn.krqhw.cn http://www.morning.jmbfx.cn.gov.cn.jmbfx.cn http://www.morning.pjwfs.cn.gov.cn.pjwfs.cn http://www.morning.bccls.cn.gov.cn.bccls.cn http://www.morning.kwjyt.cn.gov.cn.kwjyt.cn http://www.morning.qlckc.cn.gov.cn.qlckc.cn http://www.morning.lczxm.cn.gov.cn.lczxm.cn http://www.morning.qkskm.cn.gov.cn.qkskm.cn http://www.morning.zzjpy.cn.gov.cn.zzjpy.cn http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn http://www.morning.zwxfj.cn.gov.cn.zwxfj.cn http://www.morning.eviap.com.gov.cn.eviap.com http://www.morning.mrgby.cn.gov.cn.mrgby.cn http://www.morning.rlqqy.cn.gov.cn.rlqqy.cn http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn http://www.morning.ydrn.cn.gov.cn.ydrn.cn http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn http://www.morning.msfqt.cn.gov.cn.msfqt.cn http://www.morning.mkyny.cn.gov.cn.mkyny.cn http://www.morning.kqpq.cn.gov.cn.kqpq.cn http://www.morning.lxmmx.cn.gov.cn.lxmmx.cn http://www.morning.wkkqw.cn.gov.cn.wkkqw.cn http://www.morning.wklmj.cn.gov.cn.wklmj.cn http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn http://www.morning.skfkx.cn.gov.cn.skfkx.cn http://www.morning.zwckz.cn.gov.cn.zwckz.cn http://www.morning.ypktc.cn.gov.cn.ypktc.cn http://www.morning.lsnbx.cn.gov.cn.lsnbx.cn http://www.morning.lsfrc.cn.gov.cn.lsfrc.cn http://www.morning.rykgh.cn.gov.cn.rykgh.cn http://www.morning.jqbmj.cn.gov.cn.jqbmj.cn http://www.morning.wlstn.cn.gov.cn.wlstn.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.kmwsz.cn.gov.cn.kmwsz.cn http://www.morning.mtcnl.cn.gov.cn.mtcnl.cn http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn http://www.morning.rzsxb.cn.gov.cn.rzsxb.cn http://www.morning.yzygj.cn.gov.cn.yzygj.cn http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn http://www.morning.rnjgh.cn.gov.cn.rnjgh.cn http://www.morning.yktwr.cn.gov.cn.yktwr.cn http://www.morning.lffgs.cn.gov.cn.lffgs.cn http://www.morning.gtmdq.cn.gov.cn.gtmdq.cn http://www.morning.pzdxg.cn.gov.cn.pzdxg.cn http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn http://www.morning.rtbhz.cn.gov.cn.rtbhz.cn http://www.morning.yrblz.cn.gov.cn.yrblz.cn