SpringBoot部署docker

首先这是个Maven项目

  1. Docker开启远程访问

    系统环境:Centos7

    安装Docker,参考我的另一篇文章:安装docker

    首先修改Docker配置文件

    vim /usr/lib/systemd/system/docker.service
    

    ExecStart=后添加/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
    

    docker重新读取配置文件,重新启动docker服务

    systemctl daemon-reload
    systemctl restart docker
    
  2. 添加Maven插件,使用docker-maven-plugin插件

    <build>
      <plugins>
        <!--使用docker-maven-plugin插件-->
        <plugin>
          <groupId>com.spotify</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>1.0.0</version>
          <!--将插件绑定在某个phase执行-->
          <executions>
            <execution>
              <id>build-image</id>
              <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build-->
              <phase>package</phase>
              <goals>
                <goal>build</goal>
              </goals>
            </execution>
          </executions>
    			<configuration>
    				<!--指定生成的镜像名-->
    				<imageName>${project.artifactId}/${user.name}</imageName>
    				<!--指定标签-->
    				<imageTags>
    					<imageTag>latest</imageTag>
    				</imageTags>
    				<!-- 指定 Dockerfile 路径-->
    				<dockerDirectory>${project.basedir}/</dockerDirectory>
    				<!--指定远程 docker api地址-->
    				<dockerHost>http://192.168.123.56:2375</dockerHost>
    				<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
    				<resources>
    					<resource>
                <targetPath>/</targetPath>
                <!--jar 包所在的路径  此处配置的 即对应 target 目录-->
                <directory>${project.build.directory}</directory>
                <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                <include>${project.build.finalName}.jar</include>
    					</resource>
    				</resources>
    			</configuration>
    		</plugin>
      </plugins>
    </build>
    
  3. 添加DockerFile文件,放到项目根目录下(和pom.xml同级)

    #项目所依赖的镜像
    FROM java:8
    # 设置时区
    ENV TZ=Asia/Shanghai
    # 时区写入系统文件
    RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime && echo $TZ > /etc/timezone
    # 将maven构建好的jar添加到镜像中
    ADD target/*.jar app.jar
    # 暴露的端口号
    EXPOSE 32123
    # 镜像所执行的命令
    ENTRYPOINT ["java","-jar","/app.jar"]
    
  4. 执行Maven命令

    mvn clean package -Dmaven.test.skip=true
    
  5. 这时在docker上能看到,由Maven构建的镜像image,由此需要在Docker创建运行的容器。

    docker run -t -d -p 32123:32123 --name test_docker imagename 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值