docker.service
構成を変更してポート 2375 を開きます
vi /usr/lib/systemd/system/docker.service
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
ドッカーを再起動します
# 重新加载服务的配置文件
systemctl daemon-reload
# 重启 docker
service docker restart
# 开放端口
firewall-cmd --zone=public --permanent --add-port=2375/tcp
# 重启防火墙
systemctl restart firewalld
構成
Dockerfile
FROM hub.c.163.com/library/java:8-jdk
VOLUME /tmp
ADD target/docker_deploy-0.0.1-SNAPSHOT.war app.war
ENTRYPOINT ["java","-jar","/app.war"]
- SpringBoot プロジェクトの動作は Java 環境に依存するため、カスタム イメージは Java イメージをベースに構築する必要があり、ここでは NetEase が提供する Docker イメージを使用します。
- SpringBoot を実行するには tmp ディレクトリが必要ですが、ここではデータ ボリュームは /tmp ディレクトリで構成されます。
- ローカルのターゲット ディレクトリにあるパッケージ化された .war ファイルの新しいコピーを /app.war にコピーします。
- 起動コマンドを設定します。
pom.xml
warパッケージ生成時に/src/main/webapp/WEB-INF/web.xmlファイルが存在しない問題を解決
<properties>
<!-- 如果打包方式为 war 包,并且没有 /src/main/webapp/WEB-INF/web.xml 文件 -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
新しいプラグインを追加する
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<dockerHost>http://192.168.179.128:2375</dockerHost>
<imageName>yueyazhui/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<forceTags>true</forceTags>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.war</include>
</resource>
</resources>
</configuration>
</plugin>
- 実行ノードでmvnパッケージ実行時にdocker:buildが実行されるように設定します。
- 構成ノードで Docker のホスト アドレス、イメージ名、およびイメージ タグを構成します。ここで、dockerDirectory は、指定された Dockerfile の場所を表します。
- リソース ノードで戦争の場所と名前を設定するだけです。
コントローラ
@RestController
public class IndexController {
@GetMapping
public String index() {
return "Docker Deploy";
}
}
パッケージのビルドイメージ
走る
オプション 1:
docker run -d --name docker_deploy_demo -p 8080:8080 yueyazhui/docker_deploy:0.0.1-SNAPSHOT
オプション 2: (推奨、IDEA を通じてイメージを実行)
仕上げる!