2020/04/08

Dockerfileの作成

背景


仕事で、複数のエッジコンピュータにデプロイを行うにあたり、Dockerイメージを利用する必要があった

記事の目的


DockerfileでDockerコンテナを自動ビルドする

Dockerfileの導入


ここでは、Dockerfileの使用方法について記載する。

Dockerfile作成手順

Dockerfileの作成手順は、下記の通りである。
  1. Dockerfileを作成
    1. $ vim Dockerfile
    Dockerfile
    1. FROM nvidia/cuda
    2. MAINTAINER emptySet
    3. # ENV: 環境変数の設定
    4. ENV http_proxy http://your.proxy.com:8080
    5. ENV https_proxy http://your.proxy.com:8080
    6. # RUN: buildするときに実行されるもの
    7. RUN apt update
    8. # ADD: ホスト側のファイル(tar)をコンテナに移動し、展開する
    9. ADD sample.tar.gz /home/
    10. # COPY: ホスト側のファイルをコンテナにコピーする
    11. COPY sample.sh /home/
    12. # ENTRYPOINT: コンテナ実行時に最初に実行される
    13. ENTRYPOINT: /bin/bash
    14. # CMD: runするときに実行されるもの
    15. CMD ["echo", "now running..."]]
  2. bildを実行(カレントディレクトリのDockerfileを使用)
    1. $ sudo docker build -t emptySet/sampleImage .
  3. 動作確認
    1. $ sudo docker run -i -t emptySet/sampleImage
    2. ...
    3. now running...
    4. ...

備考

  • Dockerfikeのコマンド一覧
    • FROM
    • ベースイメージを指定する(必須)
    • MAINTAINER
    • イメージの作成者を記述できる
    • RUN
    • コマンドを実行する
    • CMD
    • docker run時に実行されるコマンド
    • EXPOSE
    • 外部に公開するポートを指定する
    • ENV
    • 環境変数を設定する
    • ADD
    • 指定したファイル・ディレクトリをコンテナ内にコピーする URLの指定が可能。tarファイルは自動解凍する。
    • COPY
    • 指定したファイル・ディレクトリをコンテナ内にコピーする URLの指定不可。自動解凍もしない。
    • ENTRYPOINT
    • docker run時に最初に実行されるコマンド
    • VOLUME
    • 外部からマウント可能なボリュームを指定する データの永続化が可能となる
    • USER
    • コンテナで使用されるユーザ名/UIDを設定する
    • WORKDIR
    • 作業ディレクトリを変更する
    • ONBUILD
    • 次のビルドの最後に実行されるコマンドを設定する

まとめ


  • Dockerfileの作成方法について調査、記載した

参考文献



変更履歴


  1. 2020/04/08: 新規作成

0 件のコメント:

コメントを投稿

MQTTの導入

背景 IoTデバイスの接続環境構築のため、MQTT(mosquitto)の導入を行った。 記事の目的 MQTT(mosquitto)をUbuntuに導入する mosquitto ここではmosquittoについて記載する。 MQTT MQTT(Message Qu...