Help us understand the problem. What is going on with this article?

wocker 使ってみた感レポ

More than 5 years have passed since last update.

workerでもなくwokerでもなくwockerです。

wockerでWP開発が劇的に楽になるという話を聞いて使ってみました。すっごいいい子です。

http://wckr.github.io/にあるような感じで導入は凄くシンプル

$ vagrant plugin install vagrant-hostsupdater

$ git clone https://github.com/wckr/wocker.git && cd wocker
$ vagrant up

http://wocker.devでサイトが確認可能。

http://wocker.dev/wp-admin/で管理画面が確認可能。
(ログインパスワードは admin/admin)

概要

wockerは複数のwordpressをコンテナと呼ばれるまとまりで扱い、
複数のWordpress環境を瞬時に切り替えたりできるシステム。

vagrantで立ち上げた仮想環境上に複数のwordpressコンテナを配置し、
内部で特定のコンテナを立ち上げ、Wordpressとしてブラウザから確認することが出来る。

コンテナの管理

デフォルトではwockerという名前のコンテナが走っている。

vagrant sshでvagrant仮想環境に入ると、CoreOSのマシンがあり、wockerコマンドを利用する事ができる。

core@wocker ~ $ wocker 
Usage: wocker COMMAND

Commands:
    destroy                                     Force remove all containers and related files.
    kill CONTAINER                              Kill a running container using SIGKILL or a specified signal.
    rm [-f|--force] CONTAINER [CONTAINER...]    Remove one or more containers.
                                                  [-f, --force]  Force the removal of a running container (uses SIGKILL)
    run [--name=""] [IMAGE]                     Run a new container.
                                                  Default docker image: wocker/wocker:latest
    start CONTAINER                             Restart a stopped container.
    stop CONTAINER                              Stop a running container by sending SIGTERM and then SIGKILL after a grace period.
    update                                      Update Wocker to the latest version.
    version | --version | -v                    Show the Wocker version information.

コンテナの停止

core@wocker ~ $ wocker stop {CONTAINER_NAME}

コンテナの起動

core@wocker ~ $ wocker start {CONTAINER_NAME}

複数のwockerコンテナを同時に立ち上げることは出来ない。
必ず実行中の物をstopしてからstartすること。

コンテナの作成

core@wocker ~ $ wocker run --name="{CONTAINER_NAME}"

既にあるコンテナの名前は使えない。
コンテナは作成と同時に起動するため、こちらもコンテナをstopしてから。

コンテナの削除

core@wocker ~ $ wocker rm {CONTAINER_NAME} 

destoryで全部消せます。こういうコマンド怖い。

現在実行中のコンテナを取る

docker コマンド叩く。

core@wocker ~ $ docker ps 

NAMEの所に、コンテナ名が出る。

現在実行中のコンテナに入る

core@wocker ~ $ docker exec -it {CONTAINER_NAME} bash 

itがなんなのかはよく分かってません。

Wordpressのカスタマイズ

wockerのディレクトリ内 data ディレクトリに、コンテナ名でwordpressファイルが保存されている。
vagrantでファイル同期が取られているので、そこを触れば開発確認とかできる模様。

なお、通常コンテナにはWP CLIが入ってるのでコンテナに入ればwpコマンドが使える。
プラグインのインストールや設定の変更などをシェルスクリプトベースで記述する事が可能。
rootで入る形になるので--allow-rootオプションを忘れずに

wpコマンドについては、http://wp-cli.org/を参考に。

デフォルトコンテナの編集

デフォルトはwocker/wocker:latestが使われる。
https://registry.hub.docker.com/u/wocker/wocker/

中身は非常にシンプル。runコマンドに引数でコンテナ指定もできるっぽいのでそれでなんとかなる?
必要になったら試してみたい。

わからなかったこと

wockerコマンドは基本的な部分を提供してくれるだけなので、docker力がある程度あったほうが良さそう。
自分はdocker力 皆無なので色々勉強しなきゃなぁと思いました。

  • mysql workbench とかで DB覗き見る方法(docker execしなきゃ…とか書いてたから無理?)
  • このVAGRANTにvangrant ssh以外でssh入る方法
  • stop/killの違い

wockerコマンドはdockerコマンドのラッパーになってるみたいで、
wocker psとかしてもdocker psの結果が得られるっぽい(詳しく全てのdockerコマンド全てを叩いてないので詳細は不明)。

ただやっぱりwocker/dockerコマンドの取り扱いは、docker出来ない系の人にはオススメしがたい要因になっちゃいそうなので、
基本的な操作系が全部wocker --helpにまとまってると便利だなぁとは思った。
具体的にはwocker側に下記あたりのコマンドがあったらいいなぁと思いました。

  • wocker info : 引数なしで現在実行中のコンテナ名を返す
  • wocker create : 現在実行中のコンテナを止めて、新規コンテナを作成する。
  • wocker start/stop の引数省略版
  • wocker exec : 引数なしで現在実行中のコンテナに入る。引数付きでコンテナをスイッチして入る。

5.17 追記

wockerよく使うコマンド集、がwockerの公式サイトにUPされました!! ありがとうございます!!
docker力なくても一通りの事は、何とかなりそう!!

http://wckr.github.io/commands/

mikakane
PHPerです。がんばります。
http://chatbox-inc.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away