LoginSignup
33
29

More than 5 years have passed since last update.

Dockerとはなにか?Dockerfileとはなにか?

Posted at

Docker とは

Dockerとは、コンテナを用いたアプリケーションの実行環境を構築/運用するためのプラットフォームです。

...と言われても僕は「なにそれ?コンテナ?聞いたことはあるけどなんだっけ...???」となったのでコンテナの説明をします。

コンテナとは

ホストOS上に区画を作って、アプリを動作するためのライブラリなどを一つにまとめ、まるで個別のサーバのように使うことができるようにしたもの。
アプリケーションの実行に必要なモジュールをコンテナとしてまとめられるので、複数のコンテナを組み合わせるマイクロサービス型のアプリケーションと親和性が高い特徴を持っています。
参考:コンテナ技術の基礎知識

Dockerの必要性

僕なりの解釈ですが、「環境」が変わってもそのアプリケーションは正常に動作するのか?という点で必要だと思います。環境といってもテスト環境やステージング環境、プロダクション環境があります。テスト環境で動作したとしても、いざそのアプリをデプロイすると動かないこともあります。

Dockerではこれらの環境をすべて「コンテナ」として管理していきます。アプリケーションに必要なすべてのファイルをコンテナとしてまとめて、このコンテナのもとになるDockerイメージをDocker Hubなどのレポジトリで共有します。これによって、Dockerをインストールしている環境であれば、上記で説明した「テスト環境で動作したとしても、いざそのアプリをデプロイすると動かない」というリスクは減少すると思います。そしてDocker上で動作させるコンテナの構成情報を記すのがDockerfileです。

Dockerfile とは

Docker上で動作させるコンテナの構成情報を記述するためのファイルです。

主な構成情報

  • ベースとなるDockerのイメージ
    • OSの設定
    • ミドルウェアのインストール
  • Docker上で行うコマンド
  • 環境変数の設定
  • Dockerコンテナ上で動作させるためのデーモン実行

※デーモン ... OSにおいて動作するプロセスで、主にバックグラウンドで動作するプロセス。
参考:デーモン(daemon)【Wikipedia】

Dockerfileに記述された情報をもとにして、docker buildコマンドにてDockerのイメージを作成します。

Dockerfileの構文

命令は大文字でも小文字でもどちらでもいいらしいです。(大文字のほうしか見ないので、大文字で記載します。)

命令 説明
FROM ベースイメージの指定
RUN コマンド実行
CMD コンテナの実行コマンド
LABEL ラベルの設定
EXPOSE ポートを指定
ENV 環境変数
ADD ファイル(ディレクトリ)の追加
COPY ファイルコピー
ENTRYPOINT コンテナの実行コマンド
VOLUME ボリュームのマウント
USER ユーザの指定
WORKDIR 作業ディレクトリ
ARG Dockerfile内の変数
ONBUILD ビルド時に実行される命令
STOPSIGNAL システムコールシグナルの設定
HEALTHCHECK コンテナのヘルスチェック
SHELL シェルの設定

コメントはpythonみたいな感じで#を使うことができます。

FROM centos:centos7 #ベースイメージの指定

DockerfileからDockerイメージを作成

以下のコマンドで作成します。
docker build -t [イメージ名]:[タグ名] Dockerfileの場所

例:「sample」というイメージを作りたい。
docker build -t sample:1.0 /home/docker_sample/sample

まとめ

ざっくりまとめました。イメージがつきやすいように図とか用意して更新していきます。
次回はDockerをインストールして、DockerfileからDockerイメージを作成する流れを紹介します。

33
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
29