6.1 Docker远程访问

默认docker不支持远程访问的

修改docker服务文件

vi /lib/systemd/system/docker.service

修改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 # yum install net-tools

直接 curl 看是否生效

curl http://ip:2375/info

6.2 IDEA配置Docker

6.2.1 idea安装docker插件

6.2.2 配置docker

image.png
将自己的阿里云中的镜像加速器配置到仓库地址中
image.pngimage.png
配置完成后会出现下面的样子,右键可点击链接
image.png

6.3 第一种部署方式

image.png

FROM frolvlad/alpine-oraclejdk8:slim MAINTAINER zhubc

因为原来jar包名有大小写,所以可能会操作失败

ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar

运行jar包

RUN sh -c ‘touch /app.jar’

为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source

ENTRYPOINT [“java”,”-Djava.security.egd=file:/dev/./urandom”,”-jar”,”/app.jar”]

然后把生成的 jar包和dockerfile文件放到Linux文件中

cp springboot-docker-0.0.1-SNAPSHOT.jar app.jar

镜像名称

docker build -t springdocker:10

生成容器

ocker run -it -p 8089:8080 -d —name springdocker1.0 镜像id

6.4 第二章方式 docker-maven-plugin

  1. <properties>
  2. <java.version>1.8</java.version>
  3. <docker.image.prefix>zbcdocker</docker.image.prefix>
  4. </properties>
  5. <build>
  6. <!--打包的名称,默认的名称有问题-->
  7. <finalName>app</finalName>
  8. <plugins>
  9. <plugin>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-maven-plugin</artifactId>
  12. </plugin>
  13. <plugin>
  14. <groupId>com.spotify</groupId>
  15. <artifactId>docker-maven-plugin</artifactId>
  16. <version>1.1.1</version>
  17. <configuration>
  18. <!--镜像名称-->
  19. <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
  20. <!--指定标签-->
  21. <imageTags>
  22. <imageTag>latest</imageTag>
  23. </imageTags>
  24. <!--基础镜像 jdk1.8-->
  25. <baseImage>java</baseImage>
  26. <!--制作者信息-->
  27. <maintainer>zbc1573588748@qq.com</maintainer>
  28. <!--切换到/root目录-->
  29. <workdir>/root</workdir>
  30. <cmd>["java","-version"]</cmd>
  31. <entryPoint>["java","-Djava.security.egd=file:/dev/./urandom","-jar","${project.build.finalName}.jar"]</entryPoint>
  32. <dockerHost>http://192.168.209.137:2375</dockerHost>
  33. <!--这里是复制 jar包到 docker 容器指定目录配置-->
  34. <resources>
  35. <resource>
  36. <targetPath>/root</targetPath>
  37. <!--用于指定需要复制的目录-->
  38. <directory>${project.build.directory}</directory>
  39. <!--用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件-->
  40. <include>${project.build.finalName}.jar</include>
  41. </resource>
  42. </resources>
  43. </configuration>
  44. </plugin>
  45. </plugins>
  46. </build>

在控制台中执行 mvn clean package docker:build命令进行打包生成镜像