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 
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章