LINEで送る
Pocket

Helloooo Adachinです。

2月はdockerを勉強しよう!と目標を作っていたのですが、

なかなか勉強できてなかったので、無念・・・

とりあえずエンジニアの先輩、友人に

「絶対に導入したほうがいい」「インフラやってるなら勉強しないとアカンよ!」

などとよく言われていたので、Macで環境構築してみました。

そもそもdockerってなに?からブログしていきたいと思います。


■dockerとは

はい。クジラですw

Linuxのコンテナ系技術を利用してアプリケーションのビルド、デプロイ、実行を行うコンテナ管理ソフトウェア。
Docker社(旧dotCloud社)のSolomon Hykes氏によってGo言語で作成され、
Apacheライセンスで配布されているオープンソースソフトウェア。

とりあえずコンテナというワードが重要です!

仮想実行環境って今までだとハイパーバイザ型やホスト型があると思うんですが、

ゲストOSを稼働しないといけないし、時間もかかるし、CPUやメモリ、ディスクなどのリソースも多く消費して運営が大変・・・

dockerだと展開や起動は素早いし、ゲストOSの実行やハードウェアのエミュレーションなどのオーバーヘッドはありません。docker-vm-container

つまり軽くてやたらと早いインフラコンテナ技術と覚えておきましょう!


■docker-machineってなんなの

dockerホストを様々な仮想化環境に構築できる。
AWSでも、VirtualBoxでも、ESXiでもDocker deamonがインストールされたVMを作成できる。

去年(2015年)くらいに発表されたもので、簡単にdocker環境をつくることができるようになりました。docker-machine_w_450

僕はとりあえずvagrantにdockerいれて・・・メンドクサイ。この作業がなくなります。

図を書いてみました。d01

こんな感じでMac上にdocker-machineの中にcentosやらubuntuやら素早くインフラ環境が作れるというわけです。

もちろんテスト環境なんて一瞬で、複製や削除も一瞬です。
テスト環境はvagrantなのですが、dockerでよさそう。。

では構築してみましょう!


■Macにdocker環境を構築する

・homebrewでインストール

・docker-machineをインストール/実行権限追加

・docerホストの作成

test-dockerというホスト名で作りました。1分もかからず作成されます。
ここでエラーが出た人はvirtualboxのバージョンが4系じゃないとダメなので公式サイトからダウンロードしましょう!

・環境変数をセット

docerホストがcreateされた時にこのコマンド打つんやで!!と言われるのでセットします。
永続的に設定したい場合は~/.bash_profileに記入しましょう。

・dockerホストの確認

できてる!

・dockerホストにログイン

クジラ!

他のホストにログインする場合は$ docker-machine ssh ホスト名でOK

・dockerコンテナを作成

ホスト上でdockerコマンドを叩いても問題ないのですが、
Macからdockerホストに直接コマンドを叩けるので、今回はこっちでいきます。

とりあえずcent6とcent7のコンテナを作成してみましょう。
イメージファイルは公式からです。

・ホスト上からイメージを叩く場合

・イメージファイルの確認

・コンテナにログインしてみる

できた。

exitするとプロセスが終了してしまうため、Ctl+p Ctl+qで脱出すればすぐにログインできます。
ちょっと特殊ですがやってみますね。

・起動中のコンテナにログインする場合

tmuxみたいですがこんな感じです。

・コンテナイメージをコピーしたい場合

adachin-centos6というコンテナが作成できてますね。
これでじゃんじゃ作れる感じです。

ちなみにコンテナの履歴は消さないと残り続けるてディスク圧迫してしまうので、
クリーンしときましょう。

・現在起動しているコンテナを削除


■まとめ

今回はdockerってこんな感じなのかでOKです。
dockerを使うことで、サーバ移行したときにそのままコンテナをコピーできたり、
Dockerfileを使用してレシピのように管理もできます。
なんといっても複数台コンテナ作ってもまったくMacが重くならないのがすごい。
次回はDockerfileを使って、ユーザ作成、パッケージインストール、
LAMP環境構築方法をブログしたいと思います。

dockerコマンドたくさんあるので使い方も書きますね。(・∀・)b
ちなみにdockerはCoreOSが最適みたい。

・追記

これをしないとMacを再起動した時にパッケージ等消えます

参考:https://docs.docker.com/machine/

LINEで送る
Pocket

カテゴリー: BlogCentOSDocker仮想化

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのMENTAなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなし中。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください