Docker
CoreOS

Dockerで使い捨て可能なテストコンテナを定義する

More than 3 years have passed since last update.

Dockerでテスト用のコンテナを作る場合、基本的にはDocker HubのUbuntuリポジトリなどを使います。

> sudo docker run -i -t ubuntu:trusty /bin/bash

ただ、これだと何かを試すときに必ずapt-get updateなどを行わなければならず、時間の無駄です。

そのため、まずは自分がテストに使うベースイメージを作っておき、毎回それをベースにしてやる感じがベターです。


Dockerfile

FROM ubuntu

MAINTAINER [メンテナーの名前]

RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get -y install curl


そして、次のようなコマンドでイメージを作っておきます。

> sudo docker build -t takamichie/base .

こうしておけば、いざテストコンテナが欲しいときに、以下のコマンドでテストコンテナを作成してシェルに入れます。


build.sh

#!/bin/sh

sudo docker run -i -t $* takamichie/base /bin/bash

何度も使うと思うので、あらかじめシェルスクリプトなどを作成しておくと、疑問がわいたときにすぐコンテナを作れていい感じです。

また、-vオプションなどでコンテナ内で使うコンテンツをまとめたディレクトリを指定しておくと、コンテンツのテストなどがしやすくてとても良いですね。


build.sh

#!/bin/sh

sudo docker run -i -t -v [CoreOS上にある共有したいディレクトリパス]:[コンテナ上で、共有したディレクトリがマウントされるパス]:r $* takamichie/base /bin/bash