DockerでRuby環境を作る!軽量イメージ・Volume・Compose活用ガイド
生徒
「Rubyの環境を自分のパソコンに直接入れるのは大変ですか?」
先生
「直接インストールするのもできますが、Dockerを使うと簡単に安全なRuby環境を作ることができます。」
生徒
「Dockerって難しそうですが、初心者でも使えますか?」
先生
「はい。Dockerはプログラムを動かすための“箱”を作るツールです。箱の中にRuby環境を入れておけば、パソコンに影響を与えずにプログラムが実行できます。」
1. Dockerとは?
Dockerは、アプリを実行するための“専用の箱”を簡単に作れる便利なツールです。この箱(コンテナ)の中には、Ruby本体や必要なライブラリをまとめて入れられるため、パソコンの環境を汚したり設定で悩んだりする心配がありません。また、プロジェクトごとにRubyのバージョンを変えたい場合でも、別々の箱を使うだけで簡単に切り替えられます。
もう少し具体的にいうと、Dockerは「どこでも同じ環境を再現できる」のが最大のメリットです。友だちと同じ設定で学習したいときや、新しいパソコンに買い替えたときでも、一度作ったDocker環境をそのまま使えます。
■ Dockerの動きをイメージしやすいシンプルな例
以下は、Rubyを動かすための最小限の Dockerfile です。箱の中にRubyを入れて用意する、というイメージがつかみやすくなります。
# Dockerfile(Rubyの箱を作るための説明書)
FROM ruby:3.2-slim # Rubyが入った軽量の箱を用意
WORKDIR /app # 作業するフォルダを設定
CMD ["irb"] # Rubyの対話モードを起動
このファイルを使ってコンテナを作ると、どのパソコンでも同じRuby環境が再現できます。「動かない理由が環境の違いだった…」というトラブルを避けられるのも嬉しいポイントです。
■ コンテナを実際に動かしてみる簡単体験
Dockerがインストールされていれば、次のコマンドだけでRubyを動かす箱が作れます。
# DockerfileからRubyコンテナを作る
docker build -t ruby-box .
# 作ったコンテナを起動する
docker run -it ruby-box
すると、IRBが開き、下のようにRubyのコードをそのまま入力できます。
puts "DockerでRubyが動いた!"
DockerでRubyが動いた!
このように、Dockerは「Rubyをどこでも簡単に動かせる魔法の箱」を作るツールだと捉えると理解しやすくなります。初心者でも迷いにくく、安心してRuby学習を進められる基盤になります。
2. 軽量イメージでRuby環境を構築
DockerでRuby環境を作るときは、どのイメージを元にするかがとても大事です。イメージとは、「Ruby本体+必要なOSの部品」をまとめたひな型のことです。中でも軽量イメージ(slimイメージなど)を使うと、ダウンロードが速くなり、ディスク容量もあまり使わずに済みます。Ruby学習用の環境をサクッと用意したいときにぴったりです。
以下は、軽量な Ruby 3.2 を使って、シンプルな開発用コンテナを作る Dockerfile の例です。
# Dockerfileの例(Ruby用の軽量コンテナ)
FROM ruby:3.2-slim # 余計なものを省いた軽量Rubyイメージ
WORKDIR /app # 作業フォルダを /app に指定
# (必要なら)現在のフォルダのファイルをコンテナにコピー
COPY . .
# Bundlerでライブラリをインストール
RUN bundle install || echo "Gemfileがない場合はこの行はスキップされます"
# コンテナ起動時にIRB(対話モード)を開く
CMD ["irb"]
このDockerfileを使うと、「Ruby 3.2 が入った最小限の環境」を毎回同じ状態で再現できます。ruby:3.2-slimのような軽量イメージは、余計なツールが少ないぶんサイズが小さく、ダウンロード時間も短く済みます。まずはこのようなシンプルな構成から始めて、慣れてきたらライブラリや設定を少しずつ追加していくと、無理なくDockerでRuby開発環境を育てていけます。
3. Volumeでデータを保存する
Dockerのコンテナは、基本的に「一時的な箱」として扱われます。そのため、コンテナ内だけにデータを保存していると、コンテナを削除した瞬間にすべて消えてしまいます。そこで活躍するのがVolume(ボリューム)です。Volumeを使うと、データをコンテナの外側に保存でき、コンテナを作り直しても内容をそのまま引き継げます。学習中に書いたRubyコードやログを残しておけるので、初心者にとっても安心です。
下の例では、パソコン側の ./app フォルダをコンテナの /app とつなげています。これにより、パソコンで編集したRubyファイルがそのままコンテナ内で使えるようになります。
# docker-compose.yml(Volume を利用したシンプルな構成)
version: '3'
services:
ruby:
image: ruby:3.2-slim
volumes:
- ./app:/app # パソコンのファイルをコンテナへ共有
command: irb # Rubyの対話モードを起動
■ Volumeの効果を実感する簡単なサンプル
たとえば、パソコン側の app/hello.rb に Rubyコードを書いてみましょう。
# hello.rb
puts "Volumeを使うと、コードが即座にコンテナで使える!"
その状態でコンテナを起動し、IRBの中から次のように実行します。
load "hello.rb"
Volumeを使うと、コードが即座にコンテナで使える!
このように、Volumeを使えば「パソコンで編集 → 保存 → コンテナで即実行」という流れがスムーズにできるようになります。学習効率も上がり、コンテナを消してもファイルが消えないので、とても安心して作業できます。
4. Docker Composeで複数サービスを簡単に管理
Docker Composeは、複数のコンテナをまとめて管理できるツールです。例えば、Rubyアプリとデータベースを一緒に動かす場合に便利です。Composeファイルにサービスを定義するだけで、一括で起動できます。
# docker-compose.ymlの例
version: '3'
services:
app:
image: ruby:3.2-slim
volumes:
- ./app:/app
command: irb
db:
image: postgres:15
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
この設定で、Rubyの開発環境とPostgreSQLのデータベースを同時に動かせます。初心者でも簡単に複雑な環境を再現できます。
5. 実際にRubyコードをDockerで動かす
まずdocker-compose upを実行すると、Rubyのコンテナが立ち上がります。次にIRBを使ってRubyコードを入力できます。
puts 'Docker上でRubyを実行中!'
Docker上でRubyを実行中!
Volumeを使っているので、コードを編集すると即座にコンテナに反映されます。これにより、パソコン初心者でも簡単にRuby開発が可能です。
6. Docker環境での学習のポイント
- 軽量イメージを使って高速に環境を構築する
- Volumeでデータを保持し、コンテナを安心して再作成する
- Docker Composeで複数サービスをまとめて管理する
- まずは小さなアプリから始めてDocker操作に慣れる
これらのポイントを押さえることで、パソコン初心者でもDockerで効率よくRuby環境を作り、安心して開発を進められます。
まとめ
Dockerを利用してRubyの開発環境を構築する方法を振り返ると、軽量イメージを使った高速な環境構築、Volumeでのデータ永続化、そしてDocker Composeによる複数サービスの一括管理など、多くの便利な仕組みを活用できることがわかる。とくに、Rubyのバージョンをプロジェクトごとに変えたい場合や、環境が壊れる心配をせずに学習したい場合はDockerが非常に役立つ。Dockerならパソコン本体にRubyの設定を追加する必要がなく、必要なときだけコンテナを立ち上げれば簡単にRuby環境を再現できる。これは学習者にとっても実務者にとっても大きな魅力であり、柔軟にRubyのアプリケーション開発を進めることができる理由にもなる。 また、軽量イメージでRuby環境を整えることで、不要なファイルを含まない最適な状態のコンテナを使えるため、実際の操作が非常に軽快になる。Railsアプリなどを扱う際にも、最小構成のイメージを使って素早く動作確認ができる点は、多くの学習者にとって大きな利点となる。そして、Volumeを利用することで、コンテナを消してもコードを保持できるため、繰り返し学習してもデータが失われる心配がない。Docker Composeを併用すれば、Ruby環境とデータベースをまとめて動かす構成にも対応できるため、実際のアプリ開発に近い形で学習を進められる。 Dockerを活用した環境構築は、初心者がつまずきやすい依存関係の問題を避けながらRubyを実行できる点でも大きな魅力がある。パソコン環境によって動かない、バージョンが合わないといったトラブルもDockerによって軽減されるため、学びたいことに集中しやすくなる。Rubyの学習を始める人にはもちろん、既に開発を進めている人にも有用であり、安定した環境でコードを書き続けるための助けとなる。こうした理由から、Dockerを利用したRuby環境構築は非常に高い実用性を持ち、長く使える確かなアプローチといえる。
サンプルプログラム:Dockerで動作確認
Docker上でRubyコードが正しく動作しているか確認するための簡単なクラス構文のサンプルを示す。
class DockerRubyCheck
def initialize
@text = "DockerのRuby環境が正常に動作しています"
end
def show
puts @text
end
end
checker = DockerRubyCheck.new
checker.show
このようにclassを用いたRubyコードを実行することで、Docker内部でRubyが正しく動いているかを確かめられる。Composeで立ち上げた環境でも同様に実行できるため、アプリケーションの動作確認に役立つ。軽量イメージ・Volume・Composeを組み合わせることで、安定したRuby開発環境を再現性高く構築できる点は非常に大きな強みである。環境構築に悩む時間を減らし、実際のコード学習に集中するためにも、この方法は有効な選択肢となるだろう。
先生
「今日学んだDockerでのRuby環境構築について、どこが便利だと感じましたか?」
生徒
「パソコンにRubyを直接入れなくても、Dockerだけで安全に環境が作れるところがすごく便利でした!Volumeでコードが残るのも助かります。」
先生
「その通りです。環境の違いによるトラブルも減らせるので、学習にも実務にも向いていますよ。」
生徒
「Composeを使えばデータベースも一緒に動かせるのも驚きでした。Rubyアプリの仕組みがもっと理解しやすくなりそうです。」
先生
「学習が進むと、複数のサービスをまとめて管理する場面が増えてきますから、今のうちに慣れておくと後でとても役立ちますよ。」
生徒
「はい!これからはDockerを使ってRubyの練習を続けてみます!」
先生
「いいですね。実際に手を動かしながら覚えていけば、環境構築の不安もなくなっていきますよ。」