LoginSignup
1
1

More than 5 years have passed since last update.

dockerでイメージ作成し、コンテナ上にrailsの環境を作る最小限の作業【初心者& めも】

Last updated at Posted at 2018-10-27

目的

新しいプロジェクトを作ることになった。
今までvagrant, virtual boxで仮想環境を作りその上のcentOSで開発をしていた。
詳しいことはわからないが、dockerはこのご時世必須らしい。
あと、バイトでやってたところがdockerで環境構築していて、vagrant使っていた自分からすれば、爆速かつ簡単で素晴らしかった。

大きな目的はdockerのコンテナ上で開発環境を作ること。
この記事ではdocker のコンテナ上でrails sして、
chroamでhello ruby on rails を表示することを目的にする。
ちなみにMac High Sierraがhost OS。

docker運用のイメージ的なもの

既存のdocker imageを持ってくる

ちょっと書き換えて自分の使いやすいようなimageにカスタマイズする(Dockerfile作る)

自分のためのイメージ作る(docker build)

イメージからコンテナを起動

コンテナ上のcentOS6の上でrails server 立てる

やったこと, 手順

docker インストール

ユーザー登録しないとダメだったが無料で落とせる。

Dockerfileの作成とdocker build

Dockerfile
FROM centos:centos6 # centOS6のイメージを持ってくる(dockerが用意してくれている)
MAINTAINER user
RUN mkdir -p /work # hostと共有するフォルダ

というファイルをhostOSのどこかに作る。
どこでもいい。
とりあえず~/myproject/docker-test /Dockerfileに作った。

とりあえず、共有フォルダだけ作ったが、他にも何かインストールしておきたいとかいうのを
ここに書いてしまってもいい。
例えば、RUN yum -y install gccみたいに。

docker build -t test .
これはtestというタグ名でDockerfileをビルドしてくれという命令。
これをやるとimageを作ってくれる。

docker images
でimageが作成されたことを確認できる。
いらないimageは
docker rmi <imageの名前 or ID>
でけせる。

コンテナを起動

docker ps -a
で今のコンテナの状態がわかる。
-aオプションで起動してないコンテナも含めた全てを表示してくれる。

起動まえは多分何も表示されない。

docker run -i -d -p 8080:3000 -v "${PWD}:/work" --name 'rails' test
でtestという名前のimageからコンテナを起動。
-i : 標準入力を続ける
-d : バックグラウンドで起動
-p: ポート番号指定
-v : コンテナ側のどこのpathにファイル群を送るか(この場合 /work)
--name: 名前を指定(rails という名前でコンテナ起動)

docker ps -a
で起動したことを確認。
lsof -i:8080でも確認。
ここで8080がホスト側のport番号であることに注意。
つまりあとでrails sした時はlocalhost:8080にサーバがたつ。

コンテナに入る

docker exec -it rails /bin/bash
rails という名前のコンテナに入る
-i:標準出力を続ける
-t: 疑似ttyを割り当てる
らしい
参考↓
https://www.nyamucoro.com/entry/2018/01/11/224932
https://qiita.com/toshihirock/items/22de12f99b5c40365369

ファイル共有を確認できる。
hostでDockerfileと同じ階層のファイルを変更するとちゃんとguestの/work下も変わる

簡単!!
vagrantで時間と手間と精神力その他etc...etc...を失っていたのはなんだったのか。

コンテナから出るのはexit,
コンテナを終了させるのは
docker stop コンテナ名 or ID
コンテナを削除するのは
docker rm コンテナ名 or ID

rails プロジェクトを作る

省略する、長くなるので
別記事に書いた
https://qiita.com/Umibows/items/db4509969cd3725ff310

必要なライブラリとかインストールしてrails newしてbundle installすればいい。
あとは個別に必要な物とかを入れる。↑

で、いよいよrails sする。
前にも書いたが、hostのportは8080番なのでlocalhost:8080にchroamからアクセスすると
hello画面でた。

1
1
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
1
1