2018年7月30日月曜日

dockerのゴミ掃除

dockerは手放せないですが、色々ゴミが溜まりがちなので定期的なお掃除が必要です。
よく使うものを列挙しておきたいと思います。

 動いてないコンテナをごっそり削除
$ docker container prune
 動いてないコンテナを削除
$ docker rm コンテナ
利用していないイメージの削除(実際に実行すると割と困ると思うので推奨しません)
$ docker image prune
利用していないイメージの削除(ふつうはこっち)
$ docker rmi イメージ
コンテナ消したのにブリッジネットワークだけ残ってしまった残念な時(buildを途中で止めるとゴミが残る???)
"no available IPv4 addresses on this network's address pools: bridge"とかってエラーが出てしまった時などに・・・・
$ docker network disconnect -f bridge コンテナ

 ローカルのレジストリのゴミ掃除(こんなこと普通はしないと思うけどゴミだらけになって容量的にきつくなったタイミングでたまに実行している・・・・・ダサ)
#当然ながら、pullできねーよってツッコミを受けることになります。

$ rm -rf /hoge/docker/registry/v2


 他にも思い出したら追記します・・・・

2018年7月5日木曜日

Dockerfile に ADD or COPY してしまった分の容量増がどうしても気になるとき

どうもたなじゅんです。

久しぶりの技術ネタでの投稿です。

Dockerfile に、ADD や COPY を書かざるを得ない事情を持たれている方は少なからずいらっしゃると思います。(特に公開URLから素直にダウンロードできないような場合)

ADD や COPY で書かれたファイルの容量は、Docker の仕組み上、その後そのファイルを削除したとしても容量は減りません。(レイヤが増えてしまった後に消してもダメなので)

割り切れるサイズなら良いのですが、ADD/COPY するファイルがギガ単位だったりすると流石に無視するのは難しいのではないかと思います。

そんな時に有効なオプションとして、--squash オプションを付与することで Dockerfile 内に作成されるレイヤを一つに纏める(押しつぶす)ことができます。

例えば、EDB Postgres の場合であれば、


FROM centos:latest

ENV WEBUSERNAME=ほげ(入力してね)

ENV WEBPASSWORD=ぱすわーど(入力してね)
 

COPY edb-as10-server-10.x.x-1-linux-x64.run .

RUN set -x && \
chmod +x edb-as10-server-10.x.x-1-linux-x64.run && \
sync && \
./edb-as10-server-10.x.x-1-linux-x64.run --mode unattended --enable-components server,commandlinetools --disable-components pgadmin4,stackbuilderplus --superaccount enterprisedb --serviceaccount enterprisedb --servicename edb-as-10 --prefix /opt/edb/as10 --datadir /opt/edb/as10/data --xlogdir /opt/edb/as10/data/pg_wal --superpassword enterprisedb --serverport 5444 --locale ja_JP.utf8 --create_samples no --server_utilization 33 --workload_profile oltp --webusername $WEBUSERNAME --webpassword $WEBPASSWORD && \
rm -f edb-as10-server-10.x.x-1-linux-x64.run 


EXPOSE 5444
 
 のような Dockerfile があるときに、docker build するだけだと、edb-as10-server-10.x.x-1-linux-x64.run の分は普通に image の容量としてそのまま残ってしまいます(COPY のレイヤーと、RUN の中でファイルを rm した時のレイヤーが異なるためです)。

このような場合に、squashオプションを使うことで、レイヤーを一つにまとめることが出来、結果として容量を削減することが可能です。

$ docker build --squash=true -t edb .

みたいにオプションを付けるだけ。
ちなみに、docker 起動時に、"--experimental=true" オプションが必要です。
ubuntu であれば、/etc/default/docker の DOCKER_OPTS あたりに追加してください

デメリットとしてはレイヤーを纏めた結果として image の履歴は追うことが出来なくなりますので、ご注意ください。

余談となりますが、Dockerfile 内で sync を掛けているのは、それをしないと実行権限が即座に反映されなかったためです。苦笑
Dockerfile で直前のコマンドが反映されていないような場合によくやります。。。。

※参考
https://qiita.com/RyoMa_0923/items/193d2c18addc240c04b5

2018年7月4日水曜日

ダイソー300円スピーカーのスピーカーユニットと100均すのこを流用してエンクロージャーを自作@試作品

お久しぶりです。

弟子からブログ更新せよと指令を受けたので、またどうでも良いネタ書きます。(仕事ネタ書けよおい)

ダイソーの300円スピーカーのコスパが方々で話題になっており、売り切れ続出との噂・・・・ですが、様々な方たちがエンクロージャー自作に花を咲かせており楽しそう・・・・ということで便乗してみることにしました。

参考にさせていただいたサイト 


スピーカーユニットはフルバンドらしく35㎐~20kHzと書いてあるけど、5㎝のユニットなので全く信用はしないw
が、パッシブラジエーター方式にして低音補強を試みる

パッシブラジエーター????


って人はこの辺読んでください。
バスレフの音は余り得意じゃない(*1)ので、個人的にはパッシブラジエーターかバックロードホーンかって選択肢になるんですが、持ち歩けることを優先するとパッシブラジエーター形式一択となります。(という主観です)

(*1)そもそも、スピーカーユニット小さいんだから、最低共振周波数以下の減衰とか関係ないじゃんって言われるとぐうの音も出ないんですが、ここでは音量だけの話をしているわけではないです・・・・

この企画でやりたいこと(全体編)

  • エンクロージャー交換の効果を知る
  • パッシブラジエーター化して低音を補強
  • 持ち歩けること
  • モバイルバッテリーを内蔵する
  • 木製
  • アンプをPAM8430に交換
  • Bluetooth化

 試作品でやりたいこと(今回の範囲ですね)

  • エンクロージャー交換の効果を知る
  • パッシブラジエーター化して低音を補強
上記2点以外は試作品では諦める(時間を掛けないことを優先事項とするw)し、寸法ずれとかは余り気にしない・・・・・

試作品に必要なもの 

  • 300円スピーカー(アンプは元々付いていたものを流用)
  • 100円すのこ
  • 木工用ボンド (すのこの接着用)
  • 瞬間接着剤かホットガン
  • クランプ(万力)(木工用ボンドで接着時に圧着に利用)
  • パッシブラジエーター用の振動板
  • 穴あけ工具(電動ドリル・ホールソー50mm(スピーカーユニット)、38mm(こちらはパッシブラジエーターの振動板サイズに依存)
  • のこぎり(丸のこ推奨)
  • 糸のこぎり(パッシブラジエーターが円形ならホールソーだけでOK) 
  • ニス・はけ
こんなもんだったはず・・・・・

パッシブラジエーター用の振動板には今回はこちらを使いました。
https://www.amazon.co.jp/gp/product/B0757LKKRR/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1

完成

えっ・・・・・作成途中の経過とか無いの?
はい。ありません。書く時間が足らなくなりましたwwwwwww


左が300円スピーカー。右側が作成したもの。す・・・寸法が・・・・


所感

  • エンクロージャーをちゃんと作ったからか音質が改善した
  • 総音量はバスレフ方式からパッシブラジエーター方式に変わったことで多少小さくなった(それでも十分な音量が出ています)
  • 低音は改造前よりも出ているし、パッシブラジエーターも振動はしているけど、思っていたよりもパッシブラジエーターの振動幅は小さい(サブウーファーとかでガシガシ動くイメージとは違う。小さいから仕方ない?)
パッシブラジエーターを背面に枚数足した方が良い・・・・?別の振動板に変える??少し考えます。
いずれにしても音質は確実に改善するのでお勧めですよ。

音量を最大にすると、音質の改善ははっきりと分かります。背面にボリュームのパーツを取り付けるために穴が開いているのですが、そこから音が漏れているのは仕方ないけど少し気になるので改善点かもしれません。

追記(次回予告)


次回は、パッシブラジエーターを3発(裏面のスピーカーユニット裏にそれぞれ1枚ずつ追加)にして試してみたいと思います。