継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Dokcer 実践活用ガイド 10章

タダです。

今回はDocker実践活用ガイドの10章を読んだ内容をまとめていきます。 ※記事は理解ができるたびに何度もアップデートしていこうと思います。 book.mynavi.jp

なお、副教材としてドットインストールも使っていこうと思います。

目次

なお、各章の内容は次の通りです。

  • 1章 Dockerとは
  • 2章 Dockerの仕組み
  • 3章 Dockerのインストール
  • 4章 Dockerを使ってみよう(コマンド編)
  • 5章 Dockerを使ってみよう(Kitematic(GUI)編)
  • 6章 Dockerイメージの操作
  • 7章 Dockerを使いこなす
  • 8章 複数のDokcerを使う(Docker Machine、Docker Swarm、Docker Compose)
  • 9章 Dockerをクラウドで使う(Docker Cloud)
  • 10章 DockerとJavaScriptウェブサービスを作る(簡易オンラインジャッジシステム)
  • 11章 Dockerを利用した実運用ウェブサービス構築事例(paizaオンラインジャッジシステム)
  • 12章 paizaの実行環境APIを使いウェブサービスを作る(簡易オンラインジャッッジシステム)
  • 13章 Dockerの内部

10.1~10.2

  • paizaのプログラミング支援サービスは以下の処理を行う
    • 1.サービスがプログラミング問題をユーザに出す
    • 2.ユーザが回答コードを書く
    • 3.ユーザが回答コードをサービスに提出する
    • 4.サービスがコードを実行する
    • 5.サービスが出力を判定する
    • 6.サービスがユーザに結果を表示する
  • 上記のサービスを実行する環境として隔離された実行環境を素早く作れるDockerが適切

10.3

  • オンラインジャッジシステムの仕様は以下のとおり
    • ブラウザで利用できるサービス
    • ユーザは、プログラミング言語を選択し、コードを書いて提出する
    • 提出されたコードをDockerコンテナで実行し、出力結果を表示する
  • 開発環境として、Dockerに環境を作る
  • 以下のDockerfileを作る
    • ビルド時にこけたので、apt-get update前にapt-get cleanを実行したら成功した
FROM ubuntu
RUN apt-get update
RUN apt-get install -y ruby
RUN apt-get install -y python
RUN apt-get install -y clang
RUN apt-get install -y time
RUN apt-get install -y binutils
  • docker imagesコマンドで確認する
docker images
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
ubuntu-dev                            latest              4fc18e13d011        6 minutes ago       571MB
  • サーバーで実行するコードを書いて、Dockerを起動
    • コンテナを実行できたら、Node.jsをインストールする npm install
    • Node.jsがインストールできたら、node app.jsでプログラムを実行する
docker run \
> -v $HOME/conderunner:$HOME/coderunner \
> -v /usr/local/bin/docker:/usr/local/bin/docker \
> -v /usr/bin/docker:/usr/bin/docker \
> -v /var/run/docker.sock:/var/run/docker.sock \
> -w $HOME/coderunner \
> -p 3000:3000 \
> --rm -i -t node /bin/bash
  • フロントはHTMLとJavaScriptによるコードの解説のため、割愛

10.4

  • 10.3の章で作ったアプリケーションを使うだけなので割愛

次回は11章です。