wockerでコンテナを切り替える

Wocker version 1.1 2016.04.16のマージでswitchが使えるようになったのこの記事のコマンドはスクリプトなしに

wocker switch [CONTAINER...]

すれば使えるようになりましたのでメモのために残しておきます。

wockerを使っていて十分便利なのですが、環境を切り替える時に今動いているコンテナ名を忘れたとか、で調べてから止めてまた、別のコンテナを立ち上げる

wocker ps
wocker stop [CONTAINER...]
wocker start [CONTAINER...]

のが面倒なので新たに動かしたいコンテナ名を渡すと動いているコンテナを止めて、切り替えるスクリプトを書いてみました。
wokerコマンドをスクリプトから使えるようにする方法がわからなくてはまっていたのですがWocker作者のKiteさんにエイリアスを有効にするところをヘルプしてもらってうまくいきました。ThanX Kiteさん!!

wocker作者のkiteさんからwoker version 1.0以降はスクリプトの

shopt -s expand_aliases
source ~/.bash_profile

要らないよーって教えてもらったのでVer1.0以降にあげている方は消すか”#”でコメントアウトしてください
2016.02.04 wockerのアップデートに伴い&小修正

#shopt -s expand_aliases
#source ~/.bash_profile

switch.sh

#!/bin/bash
## Sctipt to Switch Container (STOP active Container & START other Container)
## switch.sh  [Container Name]
## Check Value 
#echo Value Count $#
if [ $# -ne 1 ]; then
echo "Please Set Container Name!"
echo "switch.sh  [Container NAME]"
exit 1
fi
#CHECK wocker ps
if [  `wocker ps | wc -l` -eq 2 ]; then
C_NAME=`docker ps --format='{{.Names}}'`
if [  ${C_NAME} == $1 ]; then
echo "Same Container [Exit]"
exit 2
fi    
echo "----- Active Container -----"
wocker stop ${C_NAME}
echo "----- Switch to -----"
else
echo "No Active Container"
fi
#START wocker Container
wocker start $1
if [  $? != 0 ]; then
echo "Error : Wrong Set Container Name!!"
else
echo "Done."
fi

あとでMacからこのスクリプトを修正とかできた方が便利であればシンクフォルダ”wocker/data/”直下にスクリプト”switch.sh”を置いて

Wocker v1.0.0 以降ホームディレクトリが /home/core から /home/docker に変更になっているので、ご注意を。という情報を頂いたのでアップデート

##macのターミナル
vagrant ssh
##ここからはwockerマシンの中のssh操作
ln -s ~/data/switch.sh /home/docker
chmod +x /home/docker/switch.sh

すれば、今動いているコンテナを止める操作をすることなく切り替えれます。

vagrant ssh
##ここからはwockerマシンの中のssh操作
./switch.sh [CONTAINER...]