Skip to content

dsml-lab/docker-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Docker チュートリアル

Dockerfileとは

  • Dockerfileは,Docker imageの設計図
  • DockerfileをビルドすることでDocker imageを作成することができる
  • Dockerfileはテキストファイルで,1行ごとにコマンドを記載していく
    • OOをインストールする
    • XXのファイルを作成する

Dockerfileの書き方

  1. FROMでベースのイメージを指定
  2. COPY/ADDでビルド時に必要なファイルをイメージにコピー
  3. RUNでコマンドを実行
  4. CMDでコンテナを実行するときに動かすコマンドを指定

この流れが基本.あとは「ユーザを追加」,「環境変数を変更」とかもできる.

FROM

イメージのベースを指定する.Dockerが公式に出しているもの推奨.無駄な機能をもつImageをベースにしてしまうと,Imageのサイズが大きくなってしまう.

FROM <Image名>:<タグ名>

COPY/ADD

ビルド時に必要なファイルをホスト(実行しているPC)からコピーする.基本COPY推奨.圧縮ファイルをコピーするときにはADDを使い,圧縮ファイルが自動で展開される.

COPY <ホストのファイル> <コンテナ内のパス>

RUN

一番良く使う.コンテナ内でコマンドを実行する.RUNを複数書くとその分だけImage Layerが作成されるから最小限にする.やりたいこと1つに対して1行が理想. \で改行.&&で複数コマンド.

RUN <コマンド1> \
    && <コマンド2>

CMD

Dockerをrunしたときに実行するコマンドを指定.コンテナに入ることが目的でないときに使う.

CMD ['コマンド', '引数1', '引数2']

コンテナを実行

Dockerfileがあるディレクトリに移動する

cd docker-tutorial

Docker image をビルドする

docker build .

docker build <ビルドコンテクスト(context)>でDocker imageを作成する. ビルドコンテクストは,基本的にカレントディレクトリ.でOK.

ビルドしたimageをrunしてコンテナに入る

docker run -it <IMAGE ID>

これでコンテナ内に入って開発できる.しかし,開発したファイルはホスト内には保存されない...

ホストのディレクトリをコンテナにマウント

コンテナを実行する際に,ホストのディレクトリをコンテナにマウントすることができる.こうすることで,ホストとコンテナでファイルを共有することができる.

docker run -it -v <ホストディレクトリの絶対パス>:<コンテナの絶対パス> <IMAGE ID>

コンテナの絶対パスは,/workspaceなどの適当なパスでよい(存在しなくても勝手に作成される).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published