目的:DockerにRubyが実行できるイメージを取り込み、コンテナとして起動する。
実施環境:
OS:Windows8.1
Boot2Docker:v1.6.2
目次:
- 概要
- イメージを探す
- イメージを取り込む
- コンテナを実行する
- コンテナの停止
- コンテナを消す
- コンテナのアタッチ・デタッチ
1.概要
1.1
Boot2DockerのおかげでDockerの環境をWindowsにインストールでき、
実行するまでこぎ着けたのは良しとしよう。
しかし、Dockerはイメージからコンテナを実行し、
環境の切り替えが素早くできるのが利点だったはず。
なのに、イメージの探し方から取り込み方一式含めて基本的なやり方さえ分からない。
ならば、やるしかあるまい・・・
Rubyが実行できるイメージを探し、Dockerで実行する。
1.2
コマンドプロンプトを起動する。
※以前の記事にも書いたが環境変数は忘れずに・・・
2.イメージを探す
2.1
以下のコマンドを実行する。
コマンド:docker search ruby
docker:dockerコマンド
search:検索するためのdockerコマンドオプション
ruby:検索キーワード
検索結果の一覧が表示される。
今回は、以下のイメージを利用させて頂く。
3.イメージを取り込む
3.1
以下のコマンドを実行する。
コマンド:docker pull ruby:latest
cocker:dockerコマンド
pull:イメージを取得するためのdockerコマンドオプション
ruby:対象とするイメージ名
latest:最新版の指定
3.1
以下のコマンドを実行する。
コマンド:docker pull ruby:latest
cocker:dockerコマンド
pull:イメージを取得するためのdockerコマンドオプション
ruby:対象とするイメージ名
latest:最新版の指定
4.コンテナを実行する
4.1
4.1
以下のコマンドを実行する。
コマンド:docker run -t -i ruby:latest /bin/bash
docker:ry
run:実行するためのdockerコマンドオプション
-t -i:対話モードで実行するためのオプション
ruby:latest:実行対象のイメージ名(コンテナ)
/bin/bash:多分、使用するのが何のコマンドか指定しているだけ
コマンド:docker run -t -i ruby:latest /bin/bash
docker:ry
run:実行するためのdockerコマンドオプション
-t -i:対話モードで実行するためのオプション
ruby:latest:実行対象のイメージ名(コンテナ)
/bin/bash:多分、使用するのが何のコマンドか指定しているだけ
5.コンテナの停止
5.1
以下のコマンドを実行し、停止中のコンテナIDを確認する。
コマンド:docker ps -as
5.1
以下のコマンドを実行し、停止中のコンテナIDを確認する。
コマンド:docker ps -as
5.2
以下のコマンドを実行する。
コマンド:docker stop 停止したいコンテナID
6.コンテナを消す
6.1
以下のコマンドを実行し、停止中のコンテナIDを確認する。
コマンド:docker ps -as
6.2
以下のコマンドを実行する。
コマンド:docker rm 停止したいコンテナID
使ったコンテナはrun時に自動削除の--rmオプションを付けて起動しないと残る。
使わなくなったコンテナは無駄な領域圧迫につながる。
使わないコンテナは削除してしまいましょう。
(イメージでも同じこと)
※動作中のコンテナは停止させないと消せない!
7.コンテナのアタッチ・デタッチ
7.1
以下のコマンドを実行する。
コマンド:docker ps -as
7.2
アタッチは以下のコマンドを実行する。
コマンド:docker attach アタッチしたいコンテナID
7.3
exitを実行すると停止して終了してしまうので、
以下の方法でデタッチする。
コンテナからデタッチするには、「Ctrl+p」→「Ctrl+q」で実行する。
また、最初からバックグラウンドで実行したい場合。
run時に-dオプションを付けて実行するとバックグランド実行になる。
以上!!
以下、参考にさせて頂いたサイト様
管理人の独り言
一日使ってようやくDockerにRubyのコンテナを用意することができた。
でも・・・ちょっと待って、ちょっと待って、お兄さん!!
Rubyのソースコードが存在しているWindowsからファイルを移すもしくは、
実行するためにはどうしたらいいんだろうか?
他にもMongoDBのDockerでの使い方とか色々あるし・・・
まだ、Dockerは終わらない・・・
いい加減にプログラムに戻らせてほしい。