docker ... 仮想環境作成ソフト
イメージ ... 仮想環境のひな型
コンテナ ... イメージから作った実際に動く仮想環境
という関係になっている。環境構築の手順としてはまずイメージをダウンロードし、それを元にコンテナを作る。今回はubuntuの環境を作る。
ダウンロードの前に、いまどのイメージを使えるのかを確認する。
結果。まだ何もないのでイメージ一覧には何も出てこない。
次にイメージを取得。ネットにつながっていれば、docker pullでイメージをダウンロードできる。
これは
の順番で記述する。例えばバージョン18.04が欲しければ、 docker pull ubuntu:18.04 と記述する。最新版が欲しい場合は docker pull ubuntu:latest と、latest指定をする。
もう一度docker imagesをしてみると、イメージ一覧にubuntuのlatestが追加されている。
イメージがダウンロードできたので、このubuntu:latestを元にコンテナ(=仮想環境)を作る。
コンテナを作るには、docker create を使う。
オプションは、-t,-i両方を指定しておいたほうがいい。一応個別に設定できるが(詳しくないのに)つけないでいると仮想環境が動かなかったりI/Oができなかったりする。
-tオプション ... 仮想環境で仮想ターミナルを使う。
-iオプション ... 仮想環境と標準入出力を繋げる。コマンドラインが使用可能になる
作った仮想環境を動かすにはdocker startを使う。
-a ... 標準出力,エラー出力を接続
-i ... コンテナと対話できるようにする
-aはコンテナの出力を見ることができる(こちらから入力できない)
-aだけで接続してしまった場合、こちらから入力できないので、Ctrl+Cで帰ってくる以外に何もできなくなる。
終了する場合は、exitすれば自動的に終了する。
docker psは、何もつけないと現在動作しているコンテナしか表示されないので、-aをつけて停止中のコンテナも表示する
ただし、Ctrl+Cでコンテナから出た場合、終了していないので docker stop 環境名 をする必要がある。
docker run は、コンテナを作成し、その後起動まで行う。便利といえば便利だが、docker runする度に新たなコンテナが新規作成されるので注意が必要。
docker run でただ起動すると名前が勝手に付けられる(NAMES)。名前を付けたいときは --nameを指定。
コンテナにイメージが使われている場合削除できないので、先にdocker rm で、削除したいイメージから作成したコンテナをすべて削除しておく必要がある。
docker rmi ubuntu:latest