#修改该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
将文件内的 ExecStart注释。 新增如上行。
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375-H unix:///var/run/docker.sock
#重新加载配置文件 systemctl daemon-reload #重启服务 systemctl restart docker.service #查看端口是否开启 netstat -nlpt #如果找不到netstat命令,可进行安装。yum install net-tools #直接curl看是否生效 curl http://127.0.0.1:2375/info
打开Idea,从File->Settings->Plugins->Install JetBrains plugin进入插件安装界面,
在搜索框中输入docker,可以看到Docker integration,点击右边的Install按钮进行安装。
安装后重启Idea。
配置docker,连接到远程docker服务。
从File->Settings->Build,Execution,Deployment->Docker打开配置界面
连接成功后,在IDEA工具中即可 操作Docker:
传统过程中,打包、部署、等。
而在持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。docker-maven-plugin 插件就是为了帮助我们在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库中。
pom.xml
guoweixin org.springframework.boot spring-boot-maven-plugin 1.0.0 com.spotify docker-maven-plugin 1.0.0 ${docker.image.prefix}/${project.artifactId} latest java guoweixin [email protected] /ROOT ["java", "-version"] ["java", "-jar", "${project.build.finalName}.jar"] http://192.168.20.135:2375 /ROOT ${project.build.directory} ${project.build.finalName}.jar
Dockerfile
如上用docker-maven插件 自动生成如下文件:
FROM java MAINTAINER guoweixin [email protected] WORKDIR /ROOT ADD /ROOT/qfnj-0.0.1-SNAPSHOT.jar /ROOT/ ENTRYPOINT ["java", "-jar", "qfnj-0.0.1-SNAPSHOT.jar"] CMD ["java", "-version"]
对项目进行 打包。并构建镜像 到Docker 上。
mvn clean package docker:build
绑定Docker 命令到 Maven 各个阶段
我们可以绑定 Docker 命令到 Maven 各个阶段,
我们可以把 Docker 分为 build、tag、push,然后分别绑定 Maven 的 package、deploy 阶段,
我们只需要执行
mvn deploy
就可以完成整个 build、tag、push操作了,当我们执行mvn build
就只完成 build、tag 操作。
build-image package build tag-image package tag ${docker.image.prefix}/${project.artifactId}:latest docker.io/${docker.image.prefix}/${project.artifactId}:${project.version} push-image deploy push docker.io/${docker.image.prefix}/${project.artifactId}:${project.version}
完整pom.xml如下:
1.8 guoweixin ..................... org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin com.spotify docker-maven-plugin 1.0.0 ${docker.image.prefix}/${project.artifactId} latest java guoweixin [email protected] /ROOT ["java", "-version"] ["java", "-jar", "${project.build.finalName}.jar"] http://192.168.20.135:2375 /ROOT ${project.build.directory} ${project.build.finalName}.jar build-image package build
总结:
当我们执行mvn package
时,执行 build、tag 操作,
当执行mvn deploy
时,执行build、tag、push 操作。
如果我们想跳过 docker 某个过程时,只需要:
-DskipDockerBuild
跳过 build 镜像
-DskipDockerTag
跳过 tag 镜像
-DskipDockerPush
跳过 push 镜像
-DskipDocker
跳过整个阶段
例如:我们想执行 package 时,跳过 tag 过程,那么就需要mvn package -DskipDockerTag