Dockerfileの作成


1. Dockerfile?

  • DockerImageを生成するためのスクリプト(プロファイル)
  • さまざまなコマンドに従ってDockerfileを作成すると、Bill->DockerはDockerfileにリストされている文を順次実行し、DockerImageを生成します.
  • 長所

  • 記録画像の作成方法
  • イメージのインストール手順やインストール中にどのような操作が必要なのかを知るときに便利です.
  • 導入が容易
  • 任意のイメージを配置する場合、Dockerfileスクリプトを配置するだけで、大きなイメージファイル自体を配置する必要がなく、イメージを作成できます.
  • コンテナ(イメージ)特定行動
  • コンテナ環境でアプリケーションを開発する場合、特定のアクションをとるためにコンテナ(画像)を作成する必要がある場合があります.(?????)
  • 2.Dockerfileの作成

  • 実際のファイル名はDockerfile
  • FROM alpine:3.10
    
    RUN \
          apt-get update - y&& \
          apt-get upgrade -y
    
    ENTRYPOINT ["echo", "hello"]

    FROM

  • 新しい画像を作成する際に使用する画像を指定します.
  • RUN

  • 新レイヤー上でコマンドを実行し、新画像を生成
  • RUNコマンドを実行するたびに、レイヤが作成されキャッシュされます.したがって、RUNコマンドを単独で実行した場合、apt-get updateは再実行されないため、最新のパッケージをインストールできません.RUNコマンドでapt-get updateとupgradeを同時に実行します.
  • WORKDIR

  • 作業ディレクトリを指定します.該当するディレクトリがない場合は、新しいディレクトリを作成します.作業ディレクトリを指定すると、コマンドはそのディレクトリの周りで操作されます.
  • COPY

  • ファイルまたはフォルダを画像にコピーする
  • ENV

  • 画像で使用する環境変数値を指定します.
  • ENTRYPOINT vs CMD


  • コンテナを起動するときに実行するコマンドを入力します(=コンテナの動作方法を決定する最後のステップを定義するコマンド)

  • したがって、Dockerfileの最後の部分でENTRYPOINTまたはCMDを宣言する

  • ENTRYPOINT:コンテナを実行するときにENTRYPOINTで指定したコマンドを実行する必要があることを指定します.
    1.exec形式:ENTRYPOINT[「実行命令」、「パラメータ1」、「パラメータ2」...]
    2.shell形式:文字列として実行コマンドを入力
    ENTRYPOINT echo hello
    (=/bin/sh -c 'echo hello')

  • CMD:コンテナの実行時にパラメータ値が与えられる場合は、Dockerfileで指定したCMD値に変更して実行します.

  • 	```Dockerfile
    	FROM alpine:3.10
    
    	ENTRYPOINT ["/bin/echo", "Hello"]
    	CMD ["world"]
    	```
    docker run --name <container-name> <image-name>結果:Helloworlddocker run --name <container-name> <image-name> ME結果:Hello ME