最近ようやくdockerを使い始めました。
そんな超初心者がハマった点とその解決策を2点メモしておきます。
Dockerfileのファイル名はDockerfileだよ問題
dockerイメージを作るためのDockerfileはファイル名もDockerfile(拡張子なし)でなくてはいけません。
なので、ファイル名でそのDockerfileに何が書かれているか表現することが出来ません。
これを解決する方法として、以下の手法を取ると良いみたいです。
一つのディレクトリの中にDockerfileは一つだけしかない状況を作る
これはDockerの公式リファレンスでも推奨されている方法です。
http://docs.docker.jp/engine/articles/dockerfile_best-practice.html#dockerignore
こうすればディレクトリ名でDockerfileの中身を表現できます。
コンテナを立ち上げる時のコマンド引数を忘れがち問題
また、そのDockerfileで作られたイメージからコンテナを立ち上げる時に必要なコマンド引数など、つい忘れがちだと思います。
それを解決するために、そのディレクトリの中にもう一つ、docker.sh
を作って、その中に必要な引数を書いたdocker run
コマンドを書いておきましょう。
# example
docker run -it --name container-name image-name /bin/bash
そうすると、起動したいイメージを作ったDockerfileがあるディレクトリにcd
した後に、bash docker.sh
とするだけで、Dockerfileを作った時に意図したオプションをちゃんと再現できます。