Parallels driver for Docker Machine をインストールして、Dockerコンテナの操作までの備忘録
インストール
dockerをHomebrewでインストール
$ brew install docker
docker-machineをHomebrewでインストール
$ brew install docker-machine
docker-machineはホストOSからDocker仮想マシンを操作しやすくするためのものです。
docker-machine-parallelsをHomebrewでインストール
$ brew install docker-machine-parallels
docker-machine-parallelsは操作する先のDocker仮想マシンをParallelsとするためのものです。
docker-machineを操作する
Docker MachineをParallelsのドライバーを使用して作成
$ docker-machine create --driver=parallels [machine name]
この時点でParallelsのコントロールセンターに[machine name]の仮想マシンが作成されています。
docker-machineを起動
$ docker-machine start [machine name]
Parallelsコントロールセンターの[machine name]の仮想マシンが起動します。
docker-machineを停止
$ docker-machine stop [machine name]
Parallelsコントロールセンターの[machine name]の仮想マシンが停止します。
仮想マシン上のdocker-machineをホストOSから操作する
上記の手順で仮想マシンを起動します。
続いて下記のコマンドで環境変数を設定します。
$ docker-machine env [machine name]
最後に「eval $(docker-machine env [machine name])」と表示されます。このコマンドを実行するとホストOSのターミナルから仮想マシン上のコマンドとして実行することができるようになります。
このコマンド以降の「docker [...]」のコマンドは仮想マシン上で実行しているのと同じことになります。
コンテナの操作
コンテナとイメージを簡単に説明すると、イメージは起動するOSの基本的なイメージです。コンテナはイメージを展開して実際に運用している状態のものです。
コンテナの表示
コンテナの表示(-aオプションは停止しているものも表示します。)
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
何も作成していないので表示されません。
イメージの表示
イメージの表示
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
まだ何も取得していので表示されません。
イメージの取得
まず試しにUbuntunのイメージを取得してみます。
$ docker pull ubuntu:latest
今度はUbuntuのイメージが表示されます。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest cd6d8154f1e1 4 weeks ago 84.1MB
この時点でUbuntuのイメージが用意できました。まだコンテナはありません。
ではUbuntuイメージでコンテナを作成します。(-itオプションはホスト側とコンテナの入出力を繋ぐためものです。)
コンテナを作成
ubuntuイメージをもとにコンテナを作成します。
$ docker run -it ubuntu
root@0123456789ab:/#
これはコンテナID 0123456789ab にアタッチしているという状態です。(コマンド入力でコンテナIDを指定する場合は先頭の数文字だけで問題ありません)試しに ls コマンドを実行するとUbuntuイメージをもとに起動したコンテナ上のファイルとフォルダが列挙されます。
root@0123456789ab:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
コンテナの状態とアタッチ・デタッチ
コンテナの状態を理解するためにコマンドオプションを使わずに順次実行しています。
コンテナの状態
コンテナの状態は、起動中(Up)・停止(Exited)があります。
コンテナの起動
$ docker start 0123456789ab
起動していることが確認できます。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0123456789ab ubuntu "/bin/bash" 21 minutes ago Up 4 minutes kind_euler
コンテナの停止
$ docker stop 0123456789ab
停止コンテナも表示するために-aオプションとつけて確認すると停止しています。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0123456789ab ubuntu "/bin/bash" 11 minutes ago Exited (0) 10 seconds ago kind_euler
コンテナへアタッチ
起動中のコンテナへアタッチすることでコンテナで操作が可能になります。
$ docker attach 0123456789ab
root@0123456789ab:/#
コンテナからデタッチ
CTRL+P,Qを入力するとデタッチします。
root@0123456789ab:/# read escape sequence
コンテナの起動とアタッチ
コンテナを起動してアタッチします。
$ docker start -ia 0123456789ab
コンテナの停止とデタッチ
コンテナを停止してデタッチします。
root@0123456789ab:/# exit
exit