Monthly Archives: 1月 2016

[docker]dockerのimageを更新し、不要なimageを削除する

Pocket

docker pullしてimageを更新し、結果として山ほどできるnoneなimageを削除するのが面倒くさいのでシェルスクリプトにした。

upimage.sh
#!/bin/sh

docker images | grep -v REPO | cut -f1 -d" " | uniq | xargs -n1 docker pull
docker images -f dangling=true -q | docker rmi

タスク管理ツールWekan(Trelloクローン)+VirtualBox+CoreOS+docker

Pocket

WekanとはTrelloクローン。
鉄壁のセキュリティに守られて、インターネッツに出て行けず、世の中のイケてるサービスを使えないせいで、「サービス名」+「alternative」というキーワードで検索するのが癖になっている今日この頃です。
Trelloのalternativeで見つけたのがWekan。
これをCoreOSにインストールする。

VirtualBox上のCoreOSにはdockerまでインストール済みの前提。
以下の手順に沿ってインストールする。
https://github.com/wekan/wekan/wiki/Install-Wekan-Docker-for-testing
https://docs.docker.com/compose/install/

URLの示す通り、テスト目的。
大量のユーザを相手にするのでなければ、これでも大丈夫でしょう。
参考までに書いておくと、テスト目的と、下記の本番用で示される構成の違いは、フロントエンドにApacheがあること。
テスト目的の方の手順だと、ユーザがいきなりWekanに接続する。

https://github.com/wekan/wekan/wiki/Install-Wekan-Docker-in-production

繰り返すが、本稿ではWekanに直接、繋げさせる構成でセットアップする。

docker-composeのインストール。

まず、docker-composeのインストール。
docker-composeはdockerの管理ツール。
インストール済みならこの章は飛ばしてよい。
公式サイトの手順だと、/usr/local/bin下にインストールすることになっているが、CoreOSだと読み取り専用なので、そこ以外の、たとえばホームディレクトリのbin下等に置く。
実行権限の付与も忘れないように。

$ curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > ~/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   600    0   600    0     0    687      0 --:--:-- --:--:-- --:--:--   697
100 7739k  100 7739k    0     0  1458k      0  0:00:05  0:00:05 --:--:-- 1840k
$ chmod +x ./bin/docker-compose
$ ls -la ./bin/
total 7760
drwxr-xr-x 2 nobwak nobwak    4096 Jan  1 12:17 .
drwxr-xr-x 5 nobwak nobwak    4096 Dec  7 14:05 ..
-rwxr-xr-x 1 nobwak nobwak 7925655 Jan  1 12:17 docker-compose

docker-compose.ymlの作成。

wekanをインストールするディレクトリにdocker-compose.ymlを作成する。
以下の例では、ホストOS、つまりCoreOSのポート8081で待ち受ける。

wekan:
  image: mquandalle/wekan
  links:
    - wekandb
  environment:
    - MONGO_URL=mongodb://wekandb/wekan
    - ROOT_URL=http://localhost:80
  ports:
    - 8081:80

wekandb:
   image: mongo
   volumes:
     - /home/wekan/data:/data/db

もし、ホストOSの起動時に自動的にWekanも起動させたい場合には、冒頭部分を以下のように書き換える。

  wekan:
    image: mquandalle/wekan
    restart: always

Wekanの起動

docker-composeから立ち上げる。
まずdocker-compose –helpとして使い方を一覧しておこう。
初回起動時はupだが、二回目以降はstartで良さそうだ。

 $ docker-compose --help
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f=...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE           Specify an alternate compose file (default: docker-compose.yml)
  -p, --project-name NAME   Specify an alternate project name (default: directory name)
  --x-networking            (EXPERIMENTAL) Use new Docker networking functionality.
                            Requires Docker 1.9 or later.
  --x-network-driver DRIVER (EXPERIMENTAL) Specify a network driver (default: "bridge").
                            Requires Docker 1.9 or later.
  --verbose                 Show more output
  -v, --version             Print version and exit

Commands:
  build              Build or rebuild services
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pulls service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  unpause            Unpause services
  up                 Create and start containers
  migrate-to-labels  Recreate containers to add labels
  version            Show the Docker-Compose version information

実際に作成&起動。

$ sudo ~/bin/docker-compose up
Creating wekan_wekandb_1
Creating wekan_wekan_1
Attaching to wekan_wekandb_1, wekan_wekan_1
wekan_1   | => Starting meteor app on port:80
(略)

もしうまくいかない場合には、imagesをいったん削除してやり直してみよう。
エラーなど無さそうなら次のステップへ。
なお、問題なく動作することを確認できたら、Ctrl+Cで停止。
次回以降は

docker-compose -d start

でよし。

VirtualBoxでポートフォワーディングの設定

上記で設定したCoreOSの待ち受けポートへの、VirtualBox上でのフォワーディングを設定する。
以下の例ではVirtualBoxを動かしているホストの8082が、VirtualBox上CoreOSの8081にフォワーディングされる。

13

接続確認

前章で設定したポートにブラウザで繋ぐ。
本稿の例で言えば、http://127.0.0.1:8082へ繋ぐ。
以下の画面になればOK
9
ユーザを新規登録し、もし英語が嫌なら設定を変える。
12

ボードとリストの設定。

ボードは適当に、リストは http://www.sekai-lab.com/times/?p=473 を参考に作成。
というか、どういうリストを作ればよいか、って結構なノウハウだと思うのだが、ありがたや。

 1. Tasks:タスクリスト(アサインと期日が定まっていないタスク)
 2. Todo:やることリスト(アサインと期日が定まったタスク, 優先順位を手動で並べ替える)
 3. Today:今日やることリスト
 4. Doing:作業中のタスク
 5. In review:他人がレビュー中のタスク(アサインをレビュー者に変更!)
 6. Done:完了したタスク

以上

No tags for this post.