この簡単なガイドでは、 Dockerfileについて簡単に紹介します。 カスタムDockerイメージを構築するプロセスを自動化するためにそれを使用する方法を教えます。 Dockerfile Dockerイメージを構築するための手順が記載された単純なテキストファイルにすぎません。これには、ユーザーがイメージを作成するためにコマンドラインで呼び出すことができるすべてのコマンドが含まれています。 dockerfileを使用して、独自のカスタムイメージを作成できます。その後、これらのカスタムDockerイメージを Docker Hubを介して共有できます 。不思議に思う人のために、Docker Hubは、Dockerが提供するホスト型リポジトリサービスであり、コンテナイメージを見つけてチーム間、そしてもちろん世界中の誰とでも共有できます。
このシナリオを想像してみてください。 Jenkinsを使用する場合は以前 、次に、多くの手順を伴うJenkinsをインストールする必要があります。 Dockerhubのおかげで、Jenkinsのビルド済みコンテナイメージを数分でダウンロードして実行できるようになりました。
dockerhubのJenkinsコンテナイメージ
DockerHubからJenkinsイメージをプルするには、次のコマンドを実行します:
# docker pull Jenkins
Dockerイメージをプルしたら、次のコマンドを使用してイメージを実行することで使用できます:
# docker run -it -d -p 8080:8080 jenkins
とても簡単です!
Dockerの使用法の詳細については、次のガイドを参照してください。
- Docker入門
ソフトウェアベンダー、オープンソースプロジェクト、Dockerhubで利用可能なコミュニティからの100,000を超えるコンテナイメージがあります。上記のように、Dockerhubから任意のコンテナイメージを検索してダウンロードし、すぐに使用を開始できます。
Dockerfile形式を理解する
Dockerは、手順を読むことで、イメージを自動的に構築できます。 Dockerfileから。
一般的なDockerfileには、次の手順が含まれています。
1. FROM -コンテナのベースイメージを設定します。
例:
FROM ubuntu:18.04
コンテナのベースイメージをUbuntuとして設定します。タグ18.04が指定されていない場合、タグは「最新」と見なされます。
2.ラベル -画像のメタデータ情報を指定するために使用されるキーと値のペアです。
例:
LABEL ENV=”DEVELOPMENT”
3.実行 -ベースイメージでコマンドを実行するために使用され、新しいレイヤーが作成されます。
例:
RUN apt-get update RUN apt-get install tomcat
4. CMD -コンテナの起動時に最初に実行するコマンドを設定するために使用されます。
例:
CMD [“java”, “-jar”, “app.jar”]
5.公開 -コンテナにアクセスするためのポートを公開します。コンテナはこのネットワークポートでリッスンします。アクセスできます
このポートを使用した出力。
例:
EXPOSE 8080
6.メンテナ -このDockerイメージを作成した作成者の詳細が表示されます。
例:
MAINTAINER [email protected]
7. ENV -キーと値のペアで環境変数を設定するために使用されます。これらの変数は、イメージのビルド中に設定されます
コンテナの作成後に利用できます。
例:
ENV DB_NAME=”MySQL” ENV DB_VERSION=”8.0”
8.コピー -ローカルファイルをコンテナにコピーするために使用されます。
例:
COPY /target/devops.jar devops.jar
9.追加 -コピーと同じように機能しますが、ローカルtarを抽出してリモートURLを追加できるなどの機能があります。
例:
ADD devops.tar.xz / . ADD http://example.com/abc.git /usr/local/devops/
10.エントリポイント -画像のメインコマンドを設定するために使用されます。 CMD命令と同じように動作します。 The
CMDとENTRYPOINTの唯一の違いは、ENTRYPOINTで命令が上書きされないことです。
例:
ENTRYPOINT [“java”, “-jar”, “app.jar”]
11.ボリューム -指定した名前でマウントポイントを作成します。
例:
VOLUME /app/devops
12.ユーザー -イメージの実行時に使用するユーザー名とユーザーグループを設定します。
例:
USER dhruv USER admin
13. WORKDIR -作業ディレクトリを設定します。存在しない場合はディレクトリが作成されます。
例:
WORKDIR /var/lib/
参考までに、サンプルのDockerfileを次に示します。
FROM ubuntu:latest MAINTAINER Dhruv Tiwari "[email protected]" RUN apt-get install -y software-properties-common python RUN add-apt-repository ppa:chris-lea/node.js RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list RUN apt-get update RUN apt-get install -y nodejs RUN mkdir /var/www ADD app.js /var/www/app.js CMD ["/usr/bin/node", "/var/www/app.js"]
サンプルのDockerfileを作成し、それを使用してイメージを構築する簡単な例を紹介します。
Dockerfileの作成
Dockerfileという名前のファイルを作成します 、ファイルにコンテンツを追加します。次の例では、 vimを更新してインストールしています。 およびカール 。
# cat dockerfile
FROM alpine RUN apk update RUN apk add vim RUN apk add curl
アルパインのdockerfile
これで、Dockerfileが配置されました。先に進み、Dockerfileを使用してイメージを構築しましょう。
Dockerfileを使用してイメージをビルドする
Dockerfileからイメージをビルドするには、次のコマンドを実行します。
# docker build -t devops .
ドットに注意してください (。)最後に。
上記のコマンドに従って、Dockerは Dockerfile からの指示を読み取ることにより、イメージの構築を自動的に開始します。 現在の作業ディレクトリに保存されます。
Dockerfileが別の場所に保存されている場合は、 -fを使用してそのパスを指定できます 以下のようなフラグ。
# docker build -f /path/to/a/Dockerfile .
イメージを作成したら、次のコマンドを使用して実行できます:
# docker run -it devops
これは、Dockerfileを使用してカスタムコンテナイメージを構築する方法です。お役に立てれば。基本的なことだけを説明しました。 Dockerfileでできることはもっとたくさんあります。公式のDockerfileリファレンスを参照することをお勧めします 詳細については、ガイドをご覧ください。
推奨される読み物:
- Dockerネットワークの概念の説明
- 例を使用してDockerボリュームを説明する
- 実行中のDockerコンテナを自動的に更新する方法
- ctop –Linuxコンテナ用のコマンドライン監視ツール
- Portainer –Dockerを管理する最も簡単な方法
- PiCluster –シンプルなWebベースのDocker管理アプリケーション
- Docker –ターミナルからDockerコンテナを管理する
作成者について:
Dhruv Tiwari は、自動化が大好きで、Linuxを大規模に操作し、システムがLinuxボックスにログインする必要がないほどスマートになる日の夢を見るDevOpsエンジニアです。ソースコードからコード展開、本番環境へのCI/CDの旅。