この記事はDocker Advent Calandar 2016の22日目の記事です。(大遅刻)
前置き的な
Dockerも結構安定してきた(気がする)ので、そろそろVMで頑張っている人もDockerに乗り換えてみたらどうでしょう? という提案みたいなものです。
その際に対応するコマンドなどのまとめなどを書いていこうと思います。
VMの代わりにDockerをつけてみる(コンテナの作成)
ManagerでVMを作成したり、vagrant up
などやっていると思いますが、Dockerではdocker run
コマンドを使用します。
|
|
軽くオプションの説明をしておくと、
-d
: バックグラウンドで動作--privileged
: 特権モードで起動(今回掘り下げません)--name
: 名前を設定
てな感じです。
ubuntu
の位置を別のOS名にすることができます。
また、ubuntu:14.4
やcentos:6
のようにコロンの後にバージョンの指定をすることができます。
/sbin/init
の部分については今回掘り下げません。詳しく知りたい場合は、initプロセスなどでググってみるといいと思います。
ポートマッピング
一つ注意しなければならないのが、コンテナ上のサーバーなどにアクセスしたい場合、ポートをdocker run
コマンドの
-p
オプションを用いて指定しておく必要があります。
|
|
-p
オプションのコロンの前がホストマシンのポート、コロンの後がコンテナのポートになります。
公開するポートは複数指定することも可能です。
|
|
SSH的なことをしてみる(コンテナ上にプロセスを起動)
VMにSSHしてゴニョゴニョ、はよくやりますよね。DockerでSSHをすることはできないことはないですが、大体の場合SSHする目的は 対象のマシン上でbashなりのシェルを起動してコマンドを実行する、ということだと思います。
Dockerでは起動したいシェルをコンテナ上に起動する、というシンプルな方法で実現できます。
例ではmy-vmという名前のコンテナを作成・実行したのでこのコンテナでbashをつけてみます。
|
|
オプションの説明です。
-it
:-i
オプションと-t
オプションを同時に指定-i
: 標準入力をオープンする-t
: 疑似ttyを割り当て
普段使用しているプロンプトから違うものに変わったと思います。この時点で「VM上にSSH」みたいなことができています。 後は普段通り、開発などなどしてみましょう!!
終了する場合は普通にexit
すればいいです。
VMの停止/起動/再起動をしてみる(コンテナの停止/起動/再起動)
これらのコマンドはシンプルです。 各処理をmy-vmコンテナにやってみます。
VMの停止(コンテナの停止)
|
|
VMの起動(コンテナの起動)
|
|
VMの再起動(コンテナの再起動)
|
|
おまけ
docker run
コマンドが長ったらしい・・・。と思う人がいる、と思いますw
そんな時にはdocker-compose
コマンド。yamlファイルから設定を読み込んでコンテナを作成/起動/停止などの操作が可能です。
コマンドのオプションを何度もいじる事があれば、docker-composeで設定ファイルを書換えるほうがよかったり? とか思ったりするので試してみてはどうでしょうか?
今回作成したmy-vmコンテの設定をdocker-compose
の設定ファイルにしてみます。
|
|
このファイルをdocker-compose.yml
というファイル名で保存して、対応する操作を行います。
作成/起動
|
|
停止
|
|
起動
|
|
再起動
|
|
まとめ
VMでやっていることをDockerにとりあえず置き替えてみる。という内容で書いてみました。
正直、Dockerの思想とは違うものではありますが、Dockerをとりあえず導入してみたい、という糧の1つになればと思います!