どのようにビルド&ビルドのイメージを作成する




DockerパートIを簡素化する私の謙虚な努力I

どのようにビルド&ビルドのイメージを作成する


「私のマシンで働く」症候群の解決


私はDockersについてたくさん聞きました、私の大学院程度の一部としてそれにいくらかの経験さえありました.それでも、古いことわざが行くように、学習はすることです.そうすることによって、私はあなたがあなたの毎日の仕事の一部として学ばなければならないものを使うことを意味します.実際に、これは私の視点では、各ソフトウェアエンジニアの技術スタックのいくつかの親しみやすいレベルにする必要があります技術です.
これはDockerの使い方を簡単にするシリーズの最初の部分です.このブログ記事では、コンテナのイメージを作成し、それらを構築することができるコンテナプラットフォーム、Dockerについて話します.dockerが一意ではないことに注意してくださいcontainerd , rkt , lxd , しかし、それはそこに人気のコンテナプラットフォームの一つです.

を、私は確信している-コンテナは何ですか?


コンテナマジック —  src
コンテナは、アプリケーションが迅速かつ効率的に異なる環境で実行できるようにコードとその依存関係をパッケージ化するソフトウェアユニットです.待つ?何人かは、それを読んで、私が仮想マシンについて話していると言います.それは同じ音を出すかもしれませんが、彼らは目的で異なっています.容器は携帯で光です.VMがより多くのスペースをとり、その全体の目的は物理的なハードウェアを仮想化することです.
コンテナ対VM —  src
基本的に、コンテナーは“私のマシン上で動作する”症候群を解決します.
私のマシンで動く —  src

始める


まず、ここからDockerをインストールしますGet Docker
今、Dockerを扱うとき、2つの重要な用語、イメージと容器があります.新しいコンテナーを作成するには、DockerFile(私はDが大文字でなければならないことを学びました)を書くべきです.そして、コンテナがどのように構築されるかについて説明します.Dockerビルドを使用すると、イメージが生成されます.このイメージを場所から場所に移動することができますそのまま使用できます.イメージは他のDockerfileのためのビルディングブロックでありえます.
イメージを使用するには、イメージのコンテナーを作成するDocker Runを行います.コンテナの複数のインスタンスを実行することが可能です.

dockerfileイメージのレシピ


FROM ubuntu:latest
RUN apt-get update && apt-get -y install sysstat
ENTRYPOINT [“/bin/bash/”]
最初の行では、From状態が我々のイメージが依存するイメージです私たちはあまりにもゼロから始めることができますが、特定のオペレーティングシステムを指すことが一般的です.これがベースイメージと呼ばれる理由です.ここではUbuntu :最新の.
2行目では、runが使用されます.その目的は、イメージを構築中にコマンドを実行することです.私の例では、apt getの更新を実行し、インストールしますsysstat . このコマンドは、常に前のものの上に新しい中間イメージ層を作成します.だからこそ、常にすべてのランコマンドをチェーンすることをお勧めします.
最後に、entrypointはコマンドラインでコマンドを実行します — パート2の上でそれ以上.この場合、イメージが上がってしまえば、bin/bashを実行し、bash端末を開いて実行します.
今何? —  src

では、どのように使うことができますか。


Dockerコマンドを使用します.Dockerが起動し、我々が作成したレシピをビルドするために、dockerビルドを実行します-t stdOUTを端末に出力するための端末ドライバを追加する.以下のGIFでは、ImageCloseの名前は私のアプリであり、タグは1.0であり、右後にドット(ああ、強大なドット)が表示されますが、理由は(typoではない)のためには、現在の場所を指しています.ところで、あなたはタグを設定する必要はありませんDockerは、自動的に最新としてマークします.タグは、同じ画像のレシピのバージョン管理機構を提供します.

終了したら、Dockerイメージを実行できます.次の出力には、名前、タグ、一意のイメージID、日付、およびサイズが含まれます.
REPOSITORY TAG IMAGE ID CREATED SIZE
my_app 1.0 875ae82e46c7 39 minutes ago 105MB
タグなしでコマンドを再実行すると、Dockerはそれを同じイメージ( IDで)認識し、最新のタグでマークします:
REPOSITORY TAG IMAGE ID CREATED SIZE
my_app 1.0 875ae82e46c7 47 minutes ago 105MB
my_app latest 875ae82e46c7 47 minutes ago 105MB
再び?それはDockerは十分な変更が行われたことを識別するためにスマートであることが表示されます、同じイメージバージョンで結果.これは、初期のイメージを構築した作成時間に基づいて推論することができます.
削除するには、単にDocker RMI私のアプリを実行:1.0、リストは1つだけの画像が表示されます.理解するもう一つの重要な点は、あなたが新しい名前で同じ名前とタグでイメージをつくるとき、起こることです.古いものはnameとtagの値で設定されますが、idは同じに保たれます.
REPOSITORY TAG IMAGE ID CREATED SIZE
my_app latest ab422fb19450 4 seconds ago 105MB
<none> <none> 875ae82e46c7 7 hours ago 105MB
これをダングリングという.
ぶら下がっているイメージ —  src
ダングリング画像を削除するには、ちょうどDocker画像pruneを行う.
それがこの部分です私はあなたがそれが関連付けられていることを発見し、それができるように簡素化.画像を実行するには、Dockerリポジトリなどを使用して
閉じるこの動画はお気に入りから削除されています.