タダです。
今回は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
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
10.4
- 10.3の章で作ったアプリケーションを使うだけなので割愛
次回は11章です。