【第1弾】Docker学習【Dockerfileの基本的な使い方、docker runコマンドのオプション】
Kubernetes学習に入ってない!
まずは、Dockerを理解しようと思っています。
Udemy「米国AI開発者がゼロから教えるDocker講座」に熱を燃やしています。
そんな最中、
Udemyでdockerの学習中にメンテナンスが入ってしまった。
個人的にはスペシャルゴールデンタイムなんだけど。。。
ちなみに、Udemyの学習時間が500分を超えたらしい。
でも、Linuxコマンド系の説明はほとんどスキップしているから正確ではないかも。
正直申し上げると、何章まで進んだか良く分からない状況ですが、
docker runコマンドのオプションまで学習を進めた。
■1.Dockerfileの書き方
ベストプラクティスは、Docker imageのLayer数は最小限にすること。
Layerが作られるのは、RUN、COPY及びADDの3個。
また、コマンドを&&で結合、バックスラッシュで改行などを駆使して、
いかにLayer数を抑えるかがポイントになるみたいです。
下記は、Dockerfileで利用する基本的な命令です。
命令だけ見ると、アセンブラのような、SQL文のような不思議な感覚です。
と言っても、どちらもそんなに詳しくはないですが。。。
FROM ベースとなるDocker imageの指定
RUN Linuxコマンドの実行(apt-getコマンドなど)
CMD コンテナで利用するデフォルトのコマンドの指定
COPY ファイルやディレクトリのコピー
ADD 圧縮ファイルのコピー&解凍(例:tar、tar.gz)
ENTRYPOINT コンテナで利用するデフォルトのコマンドの指定
ENV 環境変数(例:PATH)の設定
WORKDIR 実行ディレクトリの変更
ん。。。RUNとENTRYPOINTは同じやんけ!
でもその違いは省略。
■2.docker runコマンドのオプション
・ファイルシステムの共有
docker run -it -v <ホストのパス>:<コンテナのパス> <Docker imageID>
・アクセス権限の制限
docker run -it -u <ユーザID>:<グループID> <Docker imageID>
※大抵は、ホストで利用しているユーザの権限とする
・ホストのポートをコンテナのポートに接
docker run -it -p <ホストのポート>:<コンテナのポート> <Docker imageID>
※コンテナ上にWebサービスを立ち上げることは当たり前になっている
・リソースの制限
--cpus <CPU数> コンテナが利用可能な上限のCPUを設定
--memory <バイト数> コンテナが利用可能な上限のメモリを設定
■次回
「Dockerfileを制する者がコンテナを制す」という格言は
今回まで、ここにあえて残しておく。
いよいよDockerの応用編に入るということで、
実践レベルで使えるようになるために少しずつでも力を磨いていく。
でも、受講してるだけやん!というツッコミは大好きw
以上です。