LoginSignup
3
5

More than 3 years have passed since last update.

Docker超入門 Part1

Posted at

この記事は、Docker超入門Part1の内容を要約・文字起こししたものです。(一部加筆、修正あり)

Dockerで開発環境を作ってみよう

Dockerとはなにか?を1行で説明すると、

vmwareやvirtualboxのような仮想マシンの技術とchefやansibleのような構成管理ツールを合わせたもの! です。

vmwareやvirtualboxは元になるOSのイメージがありますが、
dockerの場合元になるOSのイメージはdocker hubというところからとってこれます。↓
https://hub.docker.com/_/ruby/
上記はrubyのイメージです。

virtualboxだと、ubuntuをインストールしたイメージなどが配布されていますが、
docker hubはrubyをインストール済みのもやmysqlをインストール済みのものが配布されているので、
それらを使うことで初期設定で楽ができます。
色々あるから探してみてね!

railsのセットアップをしてみる

では、わかりやすい例としてRuby on Railsの環境設定をしてみます。

まず適当にフォルダを作ります。

mkdir rails
cd rails

まず、最初に作らないといけないファイルはDockerfileというものです。

Dockerfile
FROM ruby:2.5.3-strech

FROMはどのOSイメージを使用するかの指定になります。
<イメージ名>:<タグ名>で指定します。
今回の場合、rubyがイメージ名、2.5.3-strechがタグ名なので
上記のように書けばOKです。

次に、docker-compose.yamlファイルを作ります。
Dockerの場合、動かしているもの(OS)をコンテナと言うのですが
それをどうやって動かすかの設定をするファイルになります。

このファイルはどこかからテンプレート持ってきて書く場合の方が多いので、
だいたいこう書くんだなということが理解できればOKです。

docker-compose.yaml
version: "3"
services:
  app: # コンテナ名なのでなんでもいい
    build: . # これで同じフォルダのDockerfileが対象という意味。
    volumes: # フォルダをコンテナにマウントします。(ファイル共有)
        - "./app" # このフォルダを`/app`にマウントするという意味です。
    ports: # ポートをバインドします。`ローカルポート`:`コンテナポート` と指定します。
        - "3000:3000" # この場合、ローカルの3000ポートにアクセスした時に、コンテナの3000ポートにアクセスするの
    tty: true # つけといてください

volumesでローカルのフォルダをコンテナにマウントします。
これで、ローカルファイルをエディタで編集すれば、そのままrailsに反映されます。便利。

portsでポートをバインドします。
コンテナは別のOSなので、ポートをバインドしてあげないと、ローカルから見えません。

これで設定は完了です。
では、dockerを動かします。

docker-compose up

コンテナに入ります。(sshで入るようなもの)

docker exec -it rails_app1 /bin/bash

動画内では↑を説明していますが、↓これの方がシンプル。
(docker-compose.yamlと同じフォルダで実行する必要あり)

docker-compose exec app bash

では、railsのセットアップをします。

cd /app
gem install rails
rails new .

# nodejsも必要なので。。
apt-get update
apt-get install nodejs

rails s -b 0.0.0.0

http://localhost:3000 にアクセスすれば、railsが立ち上がっているのが確認できると思います!
ね。簡単でしょ?
次回は、もうちょっと掘り下げて説明をしたいと思います。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5