Docker Learning-Chapter 6 DockerへのSpringbootプロジェクトのデプロイ(Windows)

まず、Springbootプロジェクトを作成します

SpringBootプロジェクトSpring-Boot-Dockerを作成する

pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

HelloController.java

@RestController
public class HelloController {
    @GetMapping("/docker")
    public String hello() {
        return "Hello Docker!!";
    }
}

Dockerfile作成し、src / dockerディレクトリの下に配置します

FROM java:8
VOLUME /tmp
ADD spring-boot-docker-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

次に、プロジェクトをDockerにデプロイします

1.書類を準備する

mvnコマンドを実行して、springbootプロジェクトをパッケージ化します

mvn install

jarパッケージとDockerfileを特定のフォルダーにコピーします

2.画像​​ファイルを作成します

cdjarパッケージとDockerfileが格納されているディレクトリ

イメージ作成コマンドを実行する

docker build -t spring-boot-docker .

-tビルドされるイメージの名前とラベルを、通常はname:tagまたはnameの形式で表します。タグが宣言されていない場合、デフォルトはlatestです。

.Dockerfileが配置されているディレクトリである現在のディレクトリを表します

実行後、イメージを確認すると、イメージが正常にビルドされていることがわかります

docker images

3.プロジェクトを実行する

ミラーを実行

docker run -p 8080:8080 -d spring-boot-docker

-pポートマッピングを示します。コロンの左側はDockerコンテナー外のポート番号、右側はコンテナー内のポート番号です。

-dバックグラウンドで実行されていることを示します

Springbootの起動ログを表示する

# 查看容器
docker container ls
# 查看运行日志
docker logs -f -t --tail 行数 容器名

ランニング画像を見る

docker ps

ブラウザはhttp:// localhost:8080 / dockerにアクセスして、インターフェースから返された結果を表示します

3.問題の処理

Windowsアクセスブラウザーは、接続が利用できないことを示しています。

DockerはLinuxで実行されます。DockerはWindowsシステムで実行されます。実際には、最初にLinux環境をWindowsにインストールし、次にこの環境でDockerを実行します。したがって、アクセスサービスで使用されるlocalhostは、Windowsではなく、このLinux環境のアドレスを参照します。

QuickStartターミナルで実行し、docker-machine ip defaultWindowsシステムでのLinux環境のアドレスが192.168.99.100であることを確認します。

http://192.168.99.100:8080/dockerにアクセスしても、接続が利用できないことが返されます。

実際、その理由は、インターネットからDocker Toolboxにアクセスできないためです

Oracle VM VirtualBoxを開き、[設定]> [ネットワーク]> [NIC 1]> [詳細設定]で[ポート転送]を構成し、転送ルールを追加して、ホストの8080ポート(127.0.0.1)がサブシステムの8080ポートを指すようにし、http:にアクセスします。 // localhost:8080 / dockerで十分です。

元の記事を40件公開 賞賛を25件 100,000回以上の閲覧

おすすめ

転載: blog.csdn.net/yym373872996/article/details/105678227