Docker事始め
とりあえずDockerを使ってrubyを実行するのが目標です
Dockerはインストールしてある状態で、versionは以下の通り。
$ docker -v
Docker version 17.03.0-ce, build 60ccb22
docker store
からrubyのimageをpullします。
$ docker pull ruby:alpine
ruby:alpine
の部分は ruby:2.4.0
や ruby:slim
などでも良いです。
各自で用途に合うものを使ってください。今回は軽量らしいので ruby:alpine
を使います。
適当にプロジェクトフォルダを作成したら、その中に実行するrubyファイルを作成します。
$ mkdir ruby-sample
$ cd ruby-sample
$ vi test.rb
test.rb
puts 'hello world!!!'
ここまできたらdockerを使って test.rb
を実行してみます。
$ docker run --rm -v "$PWD":/usr/src/ruby-sample -w /usr/src/ruby-sample ruby:alpine ruby test.rb
無事 hello world!!!
が出力されました。
--rm
は使い終わったコンテナを削除しています。--rm
なしでも実行可で docker ps -a
で停止したコンテナの情報を見ることができます。
-v
は ホスト側ディレクトリ:コンテナ側ディレクトリ
の形でディレクトリを共有しています。
-w
はコンテナ内の作業用ディレクトリを指定しています。
Dockerfileを使うやり方
以上の例をDockerfileを使ってやってみます。
$ vi Dockerfile
Dockerfile
FROM ruby:alpine CMD ["ruby", "./test.rb"]
ビルドしてimageを作成します。
$ docker build -t sample .
ここでは sample
という名前のimageを作成しました。
作成したimageをもとに docker run
してみましょう。
$ docker run --rm -v "$PWD":/usr/src/ruby-sample -w /usr/src/ruby-sample sample
同じように hello world!!!
が出力されました。
以上です。
ほぼこちらのブログのまんまなんですが(微妙に違うけど)、備忘録として載せておきます。
参考
Docker run リファレンス — Docker-docs-ja 1.13.RC ドキュメント