Docker - Toku's Blog
とあるエンジニアの備忘録

Docker

VMからDockerに乗り換えてみたらどうでしょう?

この記事はDocker Advent Calandar 2016の22日目の記事です。(大遅刻) 前置き的な Dockerも結構安定してきた(気がする)ので、そろそろVMで頑張っている人もDockerに乗り換えてみたらどうでしょう? という提案みたいなものです。 その際に対応するコマンドなどのまとめなどを書いていこうと思います。 VMの代わりにDockerをつけてみる(コンテナの作成) ManagerでVMを作成したり、vagrant upなどやっていると思いますが、Dockerではdocker runコマンドを使用します。 docker run -d --privileged --name my-vm ubuntu /sbin/init 軽くオプションの説明をしておくと、 -d: バックグラウンドで動作 --privileged: 特権モードで起動(今回掘り下げません) --name: 名前を設定 てな感じです。 ubuntuの位置を別のOS名にすることができます。 また、ubuntu:14.4やcentos:6のようにコロンの後にバージョンの指定をすることができます。 /sbin/initの部分については今回掘り下げません。詳しく知りたい場合は、initプロセスなどでググってみるといいと思います。 ポートマッピング 一つ注意しなければならないのが、コンテナ上のサーバーなどにアクセスしたい場合、ポートをdocker runコマンドの -pオプションを用いて指定しておく必要があります。 docker run -d --privileged -p 8080:80 --name my-vm ubuntu /sbin/init -pオプションのコロンの前がホストマシンのポート、コロンの後がコンテナのポートになります。 公開するポートは複数指定することも可能です。 docker run -d --privileged -p 16379:6379 -p 16380:6380 -p 10080:80 --name my-vm ubuntu /sbin/init SSH的なことをしてみる(コンテナ上にプロセスを起動) VMにSSHしてゴニョゴニョ、はよくやりますよね。DockerでSSHをすることはできないことはないですが、大体の場合SSHする目的は 対象のマシン上でbashなりのシェルを起動してコマンドを実行する、ということだと思います。