idea部署到docker
docker打开2375端口
打开docker.service配置文件
[root@microservice ~]# vim /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd-current 后面加上
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
上面代码是docker版本,下图是docker-ce版本
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
[root@localhost ~]# systemctl stop docker Warning: Stopping docker.service, but it can still be activated by:docker.socket #此警告信息是docker.service服务已被停止,但是还是可以被docker.socket启动激活 systemctl status docker docker images systemctl stop docker systemctl stop docker.socket docker images
重新加载配置文件和启动:
systemctl daemon-reload systemctl start docker
idea安装docker插件并配置:
配置pom文件
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.2.RELEASE</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
Spring Boot Maven plugin的最主要goal就是repackage,其在Maven的package生命周期阶段,能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*.original。
编写Dockerfile
在pom.xml所在位置编写Dockerfile
FROM anapsix/alpine-java:8_server-jre_unlimited MAINTAINER "donkee@vip.qq.com" ADD /target/shop-product-1.0-SNAPSHOT.jar /opt/app.jar EXPOSE 8081 ENTRYPOINT ["java","-jar","/opt/app.jar"]
EXPOSE 8081
暴露镜像的端口供主机做映射,启动镜像时,使用-p参数来讲镜像端口与宿主机的随机端口做映射。(可指定多个)
ENTRYPOINT
CMD和ENTRYPOINT都可作为容器启动时执行的命令。CMD的命令会被 docker run 的命令覆盖而ENTRYPOINT不会