0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Docker】基本のDocker Instructionの紹介

Posted at

また少しDocker担当から離れていきそうなので備忘録もかねて記述していきたいと思います。
今回は簡単にFROM, RUN, CMDのご紹介です。

FROM

DockerfileはFROMを記述して、ベースとなるイメージを決めます。
ex.ubuntuの最新バージョンのイメージを指定する場合

FROM ubuntu:latest

慣れるまでは自分が必要とするツールが揃っているものを指定するのもいいと思います。慣れてきたらOSのみで欲しいツールを入れていくことを検討するといいと思います。

RUN

このコマンドを使うことでサーバーに必要なものを好きなようにカスタマイズすることが可能です。

ex.イメージOS上にtest1.txt,test2.txtというファイルを作成する

Dockerfile
RUN touch test1.txt
RUN touch test2.txt

RUNコマンドを複数行と実行することでイメージOS上の環境を整えていくことが可能ですが、RUNごとにレイヤーが作られます。
レイヤーが増えるとイメージが大きくなるので注意が必要です。

レイヤーを少なくする工夫

レイヤーを作るコマンドRUN, COPY, ADDを複数使う必要がある場合は&&でコマンドをつなげて記述する。1行が長くなるとDockerfileが見辛くなるので(バックスラッシュ)で改行をする。

Dockerfile
RUN apt-get update
RUN apt-get install aaa
RUN apt-get install bbb
RUN apt-get install ccc

Dockerfile
RUN apt-get update && apt-get install aaa bbb ccc

↓インストールのパッケージが増えると見辛くなるので改行で整えます。

Dockerfile
RUN apt-get update && apt-get install \
aaa \
bbb \
ccc```

インタラクティブに実行許可のyを入力する必要があるのでyesを意味する-yを入れるとインストールがスムーズに実行されます。

```docker:Dockerfile
RUN apt-get update && apt-get install \
aaa \
bbb \
ccc

キャッシュを有効利用する

apt-getなどでツールをインストールする記述をする時に一つ一つaaa,bbbがうまくインストールされたのでつなげてcccを記述して試す...と実行結果を得るためにネットワークへのアクセスが毎回発生してしまいます。

aaa bbb cccのツールをインストールしたい場合

Dockerfile
RUN apt-get install \
aaa \
bbb

これがうまくいったので続けてcccを記述するとキャッシュが利用されずに全てをネットワーク上から取得する事になる。

Dockerfile
RUN apt-get install \
aaa \
bbb \
ccc

↓まずは違うRUNで記述します。

Dockerfile
RUN apt-get install \
aaa \
bbb
RUN apt-get ccc

というように後から追記するものはまず分けてうまく動作するかを試します。うまくいけば1行で記述するようにすることで記述から実行の一連の時間のロスをなくすことができます。

CMD

・Dockerfileの最後に記述することで、コンテナのデフォルトで実行されるコマンドの指定をすることができます。
CMD ["コマンド", "パラメータ1", "パラメータ2", "パラメータ3"]
ex.バッシュを起動する

FROM ...
RUN ...
CMD ["bin/bash"]

おしまい

上記紹介したコマンド:FROM, RUN, CMDで簡単なウェブサーバーなどの環境を作ろうと思えば作れるようになると思います。Docker、便利なんでぜひお試しください。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?