Dockerシリーズ(2)dockerファイルとdocker maven

Dockerファイルコマンドの説明Daquan

1.Dockerファイルの基本的な手順

Dockerfileの構成 命令
基本的なミラーリング手順 から
メンテナ情報 メンテナー
ミラー操作説明書 コピーを実行します。追加、公開等
コンテナの起動時に実行 CMD、ENTRYPOINT

2.Dockerfile命令の詳細な説明

dockerfileコマンド
Dockerfileの説明 使用説明書
から 最初の命令は、ベースミラーリングを指定するFROM命令である必要があります
メンテナー 指定メンテナ情報
RUN 現在の画像に基づいて、指定されたコマンドを実行します
CMD コンテナの起動時に実行されるコマンド
EXPOSE Dockerサーバーコンテナによって公開されているポート番号
ENV 環境変数を指定します
追加 指定したソースパスをコンテナ内のターゲットパスにコピーします
コピー ローカルホストのソースパス(Dockerfileが配置されているディレクトリの相対パス)をコンテナ内のターゲットパスにコピーします
エントリーポイント コンテナーの開始後に実行されるようにコマンドを構成します。dockerrunによって提供されるパラメーターでオーバーライドすることはできません。
ボリューム ローカルホストまたは他のコンテナからマウントできるマウントポイントを作成します
ユーザー このコマンドで実行中のユーザーを指定します
WORKDIR 後続のRUN、CMD、ENTRYPOINT命令用に作業ディレクトリを構成します
オンビルド 作成した画像を他の新しく作成した画像のベース画像として使用する場合に実行する操作手順を設定します

1. dockerファイルを使用して、最初のspringBootプロジェクトをビルドします

apps.jarのspringBootパッケージをアップロードします

2.Dockerfileを作成します

vim Dockerfile

 Dockerfileのコンテンツは分散化されています。

FROM java:8
VOLUME /tmp

ADD apps.jar /apps.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/apps.jar"]

3.dockerでビルドする

docker build -t apps .

4.dockerを使用してイメージを開始します

docker run -d -p 8888:8888 --name apps apps

5.コンテナアプリのlogコマンドを表示します。

docker logs -f -t --tail 200 apps

これまでのところ、helloWordレベルでのdockerのspringBootアプリケーションは問題ありません。

2.2 envコマンドを使用して、コンテナが使用する動的変数を渡します

shスクリプトによって渡されたENTRYPOINTは、着信無効化の問題を解決しません。

FROM baseimage
VOLUME /tmp

WORKDIR /usr/website/app
RUN ls
RUN mkdir -p /usr/website/app && \
   cd /usr/website/app
RUN ls
COPY startup.sh /usr/website/app
COPY apps.jar /usr/website/app
RUN chmod +x /usr/website/app/startup.sh
#定义的默认参数
ENV XMSTEST 20M
# 打印一下默认值
RUN echo 'XMSTEST=' $XMSTEST
#启动脚本时要把变量传入
CMD sh /usr/website/app/startup.sh $XMSTEST

#!/bin/bash
XMSTEST=$1
echo "XMSTEST=" ${XMSTEST}
java -Xms:${XMSTEST} -Djava.security.egd=file:/dev/./urandom -jar apps.jar

コンテナを起動するだけです

#启动命令
docker run -p 8888:8888 -e XMSTEST="90M" -d --name apps apps

3.Dockerコンテナ関連の操作

Dockerを実行すると、関連する画像がコンテナになります

#すべてのコンテナを表示

docker container ls -a 
#通过container id 删除container
docker rm 1c4586fe95ee 

4.Dockerイメージ関連の操作

1.すべてのミラーを表示する

docker image ls 

2.ミラーを削除します

通过repository删除
docker rmi bigni/test3
 #通过image id 删除
docker rmi e2b5b08cc31c

5.docker maven

周囲:

  1. jdk1.8
  2. Maven
  3. docker(最新バージョン)

1:Pom.xmlはDocker関連のプラグインを追加します

<build>
        <finalName>springBootDocker</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <configuration>
                    <imageName>docker-springBoot:v1</imageName>
                    <baseImage>java</baseImage>
                    <entryPoint>["java","-jar","/${project.build.finalName}}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}}</directory>
                            <include>${project.build.finalName}</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

        </plugins>
    </build>

2:ソースコードパッケージをLinuxシステムにアップロードします

3:mavenコマンドを使用してビルドします

mvn clean package docker:build

docker images

 

おすすめ

転載: blog.csdn.net/qq_38130094/article/details/114535738