文章目录
服务虚拟化-dockerfile-maven-pluging使用手册(使用maven插件模式下)
使用该插件时,有一些注意事项
- 该插件依赖一台装有Docker daemon的机器完成镜像的构建
- 由于该插件需要访问Docker Host,因此要求Docker Host打开TCP管理端口,并允许访问
Docker Host开启TCP管理端口
-
修改docker服务主机上的文件
vim /usr/lib/systemd/system/docker.service (如果没有上面这个文件,使用下面这个命令) vi /lib/systemd/system/docker.service
找到
ExecStart=
所在的那一行,在之后添加:-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
重新加载并重启Docker,确认端口2375是否启用:
systemctl daemon-reload systemctl restart docker netstat -an | grep 2375
-
使用该插件的机器需要配置
DOCKER_HOST
选项,指向Docker Host对应端口
windows下(添加系统变量)
set DOCKER_HOST=tcp://x.x.x.x:2375(如果这个环境变量没有生效。可以切换至IDEA的docker插件模式)
linux环境下(可尝试一下。但是我没试过)
export DOCKER_HOST=tcp://x.x.x.x:2375
-
该插件构建和发布镜像依赖于镜像仓库,需要用户提供镜像仓库的登录信息,支持POM设置和Settings设置(需要有maven环境)
-
IDEA的maven插件方式
点击IDEA中的maven插件各服务的Plugins插件,有个名字叫dockerfile的插件,点击build就可以远程把镜像推到远程的docker中
-
项目打包方式
把pom中的goals注释打开。项目打包后会自动构建镜像上传至远程镜像。注意多次打包会导致docker服务器上有多个为none的镜像
-
命令方式
-
镜像离线打包方式
- 使用命令多docker中的镜像打成压缩包
docker save -o test.tar saimo/icv-upgrade-sso2.3:0.0.1-SNAPSHOT
- 把压缩包传至其他离线环境,进行镜像加载,如:
docker load -i test.tar
镜像启动、删除命令
-
镜像启动命令
#运行镜像脚本 docker run --name=icv-upgrade-sso2.3 -d --net=host saimo/icv-upgrade-sso2.3:0.0.1-SNAPSHOT docker run --name=icv-upgrade-gateway2.3 -d --net=host saimo/icv-upgrade-gateway2.3:0.0.1-SNAPSHOT docker run --name=icv-upgrade-enterprise2.3 -d --net=host saimo/icv-upgrade-enterprise2.3:0.0.1-SNAPSHOT docker run --name=icv-upgrade-email2.3 -d --net=host saimo/icv-upgrade-email2.3:0.0.1-SNAPSHOT
-
删除镜像命令
#删除镜像脚本 docker rmi saimo/icv-upgrade-sso2.3:0.0.1-SNAPSHOT docker rmi saimo/icv-upgrade-gateway2.3:0.0.1-SNAPSHOT docker rmi saimo/icv-upgrade-enterprise2.3:0.0.1-SNAPSHOT docker rmi saimo/icv-upgrade-email2.3:0.0.1-SNAPSHOT
容器停止、删除命令
-
容器停止并删除命令
#删除容器,停止容器脚本 docker stop icv-upgrade-sso2.3 docker stop icv-upgrade-gateway2.3 docker stop icv-upgrade-enterprise2.3 docker stop icv-upgrade-email2.3 docker rm icv-upgrade-sso2.3 docker rm icv-upgrade-gateway2.3 docker rm icv-upgrade-enterprise2.3 docker rm icv-upgrade-email2.3
镜像打包命令
-
压缩镜像
#镜像打包 docker save -o icv-upgrade-sso2.3.tar saimo/icv-upgrade-sso2.3:0.0.1-SNAPSHOT docker save -o icv-upgrade-gateway2.3.tar saimo/icv-upgrade-gateway2.3:0.0.1-SNAPSHOT docker save -o icv-upgrade-enterprise2.3.tar saimo/icv-upgrade-enterprise2.3:0.0.1-SNAPSHOT docker save -o icv-upgrade-email2.3.tar saimo/icv-upgrade-email2.3:0.0.1-SNAPSHOT
-
解压镜像
#解压镜像包 docker load -i icv-upgrade-sso2.3.tar docker load -i icv-upgrade-gateway2.3.tar docker load -i icv-upgrade-enterprise2.3.tar docker load -i icv-upgrade-email2.3.tar
IDEA的docker插件模式下(使用maven插件模式下)
首先需要下载IDEA中的docker插件。搜索docker选第一个插件安装就可以(注:此方法不用配置系统环境变量)
配置打包参数
点击对应项目的dockerfile文件。安装完docker插件后文件样式变成可执行样式。
IDEA进行虚拟化
-
把项目达成jar包,修改dockerfile中的add语句,改为如下
ADD target/icv-upgrade-enterprise2.3-0.0.1-SNAPSHOT.jar /home/myapp.jar
即改为相对目录下的jar包所在地。
-
点击文件左侧出现的可运行标志,选择编辑运行参数,点击server栏进行后的三个点,配置docker服务器
选择TCP socket在URL中写
tcp://x.x.x.x:2375
写完后等一下,登台提示是否连接成功
在image tag中填写
镜像名字:版本
-
最后点击运行即可在docker服务器中看见你上传的镜像
-
最后使用上面的命令运行docker即可
(注:对于不同项目的dockerfile都需要配置一下img tag。不然到时候会显示none)