突然寒くなりましたね。
開発担当のノリフミです。
最近サーバーサイドを少し触らせてもらってるのですが
Dockerという素晴らしいのに得体の知れないものを手懐けようと奮闘してる日々です。
自分なりにこうしたらいいのでは?
っと思ったこと残しておこうかと。
「Docker」とは、Docker社(旧dotCloud)が開発するオープンソースのコンテナー管理ソフトウェアの1つです。
なんて記述をみつけましたが、分かる人には分かりますが、分からない人はさっぱりですよね。
簡単にいうと、「皆んなが使えて、目に見えないパソコンを簡単に管理(作成・編集・削除等)できるソフトウェア」という感じでしょか(逆にわからない)
前置きはこれくらいにして、ここから本題…
wordpressの公式イメージをpull
docker pull wordpress:latest
コンテナ生成
docker run –name container-name -it
–link container-mysql:mysql
-p 8080:80
-v /home/user/html:/var/www/html
-v /home/user/conf/apache2/sites-available/000-default.conf:/etc/apache2/sites-available/000-default.conf
-v /home/user/conf/php/php.ini:/usr/local/etc/php/php.ini
-e ‘WORDPRESS_DB_HOST=mysql’
-e ‘WORDPRESS_DB_USER=user’
-e ‘WORDPRESS_DB_PASSWORD=password’
-e ‘WORDPRESS_DB_NAME=db_name’
wordpress:latest bash
※ここで問題発生!
カスタマイズすればするほど-vが
増える!
増える!!
そこで考えるノリフミ…
「そうかDockerfileにしてしまえば!」
※ここでまたまた問題発生!!
DockerfileでCOPYしてコンテナ生成しても、起動後のホスト側での編集がコンテナに反映されない…
そこでノリフミは思いました。
「-vとDockerfileってどっちがいいんだ?」
要点整理
-vでマウントいっぱい
Dockerfileでまとめる
色々と記事を探していると、こんなのみつけました。
Dockerが提供するのは、アプリケーションの実行環境を「Dockerイメージ」としてイメージ化する機能、そして、Dockerイメージから実際にアプリケーションを起動する実行環境を提供するという機能です。この「実行環境のイメージ化」こそが、Dockerの中心となる機能です。
なるほど。
imageどんどん作ってけよってことですよね。
それではDockerの考え方に基づいて、構築しよう。
その前に、Dockerのbuildする時に注意点が何点かあります。
上記を踏まえてファイル構成はこんな形に
├── Dockerfile
└── conf
├── apache2
| └── sites-available
| └── 000-default.conf
├── docker-entrypoint-initdb.d
└── php
└── php.ini
Dockerfile生成
vi Dockerfile
FROM wordpress
MAINTAINER user
COPY conf/docker-entrypoint-initdb.d /docker-entrypoint-initdb.d/
COPY conf/apache2/sites-available/000-default.conf /etc/apache2/sites-available/
COPY conf/php/php.ini /usr/local/etc/php/
RUN a2ensite 000-default
RUN a2enmod headers
RUN a2enconf security
image生成
docker build image_name ./
コンテナ生成
docker run –name container_name -it
–link container-mysql:mysql
-p 8080:80
-e ‘WORDPRESS_DB_HOST=mysql’
-e ‘WORDPRESS_DB_USER=user’
-e ‘WORDPRESS_DB_PASSWORD=password’
-e ‘WORDPRESS_DB_NAME=db_name’
-v /home/user/html:/var/www/html
image_name:latest bash
無事コンテナ生成終了しましたm(_ _)m
まとめ
Dockerでコンテナ生成するときは最低限のマウントで
後はDockerfileに書いて、どんどんimage作っていこう。
というお話でした。
よくよく考えると当たり前な気もしますが、今でもimageいっぱい作るの抵抗あります…
年始は2日から風邪引きました。
マエダです。
GitHubでmergeとかrebaseミスってリポジトリ壊しちゃった。。。
だけどこうすればいい感じにリカバリできるよ!みたいな話では今回ありません。
昨年の12月初旬に以下の記事に触発されてOctocatグッズを物色してました。
『Github Shop が結構おしゃれなモノ多くて悔しすぎる件』
説明しよう。
OctocatとはGitHubのキャラクターのことだ。
見た目がタコとネコが合体したような感じだからなのだ。(たぶん。。
マグカップやらTシャツやらほんとにいろんなグッズがあるぞ。。
欲しい。。。(なんでこんなに欲しくなるんだろう
(買っちゃえよ。。
(買ってから考えようよ。。。
(みんなへのクリスマスプレゼントだと思えばいいよ。。。
ちょっと試しにステッカーを買ってみました。(2ドルだしいいよね!
—
1x Die Cut GitHub Stickers – 10 Pack 3″ for $2.00 each
Subtotal : $2.00 USD
Shipping : $11.22 USD
Total : $13.22 USD
—
あれ、、送料ハンパねぇ。。。
そして年末は注文したことも忘れて年を越しました。。。
そろそろ問い合わせしないと届けてくれない気がする。
www.usps.com でみると日本には来てそうな雰囲気だけど。
日本郵政公社様にお問い合わせしても不明とのこと。
GitHub Shopに「届かないよー!」って問い合わせしたら今日届きました。
Thank you for sending the octocat stickers!
GitHub Shop
#GitHub #octocat #太平洋こえるからまとめて買った方がいいよ #まだ3枚余ってて社内であまり人気ないよ #Monalisaって名前らしいよ
「お正月、ダイエット」で日々ググっています。
こんにちわ。リエです。
毎年新年にその年の1年間の目標を立てています。
業務に関してもいくつか目標を立てましたが、その中の1つに毎日日報を書くというものがあります。
今までも業務は表で管理していましたが、日報を書くことで細かな業務整理ができ、かつ上に報告することで業務の効率化が狙えると考えたからです。
まだ始めて数日ですが、日報という形で1日の終わりに業務を整理し振り返ることで頭の中がクリアになり次の日の業務がスムーズにいくなと感じています。
中々意識していても、日々慌ただしく過ごしていると目標を見失いがちですが今年は目標を見失わずしっかりと達成できるよう頑張りたいと思います。
ヤセタイヨー
ほとんどの方が今週から仕事始めだったのではないでしょうか。
当社の冬季休暇は自由選択制なので、本日はまだ休暇をとっている社員もいますがほぼ全員そろいました。
やはりメンバーが揃うと活気がでますね。
現在、当社のエントランスには正月飾りが飾られています。
よく知られています正月飾りといえば、門松、しめ飾り、鏡餅ですよね。
それぞれの飾る意味をご存知でしょうか。
ーーーーーーーーーーーーーーーーーーーー
・門松
門松は歳神様の依代と言われており、歳神様が迷わずに降りてくるための目印。
・しめ飾り
神様を迎える清浄な場所を示すために飾るもの。
さらには玄関に飾ることで、災いが外から入ってくることを防ぐといわれている。
・鏡餅
歳神様を迎えるために供えるもの。
ーーーーーーーーーーーーーーーーーーーー
それぞれにありがたい意味が込められています。
2016年いい年になるよう頑張ります。

ちなみにほぼ全員出勤したと書きましたが、私はこのブログを自宅のこたつから書いております。
アッタカイヨー