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不会

创建docker配置

运行dockerfile

idea部署到docker