6章

概要

自分のImageを作るためのDockerfile記述していき,コンテナから呼び出してイメージを使用する.
コンテナから呼び出すときに使うコマンドが,docker runだ.
作成したイメージを使えば,自分も他者も同じような環境で作業することができる.
今までdocker run ~と打っていたのは,コンテナを起動して,イメージを使って作業していたことになる.


Imageのダウンロード

Imageをダウンロードするには,pullコマンドを使用する.今回は試しにUbuntuのImageをダウンロードしてみる.「:」以下はタグといい,バージョンを指定している.
自分のローカルで以下を入力

docker pull ubuntu:18.04

次に,ダウンロードしたImageをrunコマンドを用いて起動する.

docker run -it ubuntu:18.04


docker runを用いれば,様々なイメージを使うことができる.
例えば,Pythonオープンソース機械学習ライブラリのPyTorchを起動してみる.

docker run -it pytorch/pytorch

Pytorchは,自分のローカルにpullしていないが,この場合でも実行できる.
ローカルにイメージが見つからない場合は,勝手にダウンロードされるようになっている.


自分のImageを作る

イメージを作ることで他者と同じような環境で作業ができることがわかった.
イメージを作るには,Dockerfileという名前のファイルにインストールするものなどを書いていく.

cdコマンドを用いてDockerfileを作りたいディレクトリに移動し,以下を入力.

touch Dockerfile

きちんと作成できているかは,lsコマンドで見てみるといい.

先程の方法は,先にlsでファイルの有無を見ておくためだったが,別の方法としていきなりviを使って書く.(touchで作ったあとviで書くつもりだった)

vi Dockerfile

viの使い方として,

  1. 「i」を入力して編集できるようにする.
  2. Dockerfileの中身を書いていく.
  3. Escを押して編集を終了.
  4. 「:wq」で保存して終了

2.の編集については,好きに書けばいいが,本で提供されているものを書いていく.

FROM node:12
LABEL maintainer="名前"

RUN apt-get update \
    && apt-get install nano

RUN cd/opt \
    && curl -q "https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz" -o Python-3.7.6.tgz \
    && tar -xzf Python-3.7.6.tzg \
    && cd Python-3.7.6 \
    && ./configure --enable-optimizations \
    && make install

RUN cd /opt \
    && curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
    && unzip awscliv2.zip \
    && ./aws/install

RUN npm install -g aws-cdk@1.100

# clean up unnecessary files
RUN rm -rf /opt/*

#copy hands-on source code in /root/
COPY handson/ /root/handson

保存したら,確認としてcatを使って中身を見てみる.きちんとかけていることがわかる.