LINEで送る
Pocket

Hai Adachinです。

今回はdocker-machineNginxをインストールして、テスト画面を表示させたいと思います。

docker-machineにこだわらず、サーバにdockerをインストールしている環境でも基本は使い方同じです。

そもそもパッケージ管理は全て「Dockerfile」を使用してnginxなりmysqlなりインストールするわけです。

自動化のレシピのようなイメージ。

書き方もとても簡単なのでご紹介します。

構築するまでめちゃくちゃ軽いし、早いです。


■Dockerとコンテナの仕組み

ちょっとDockerとコンテナのネットワークの図を作ってみました。
Dockerホスト側がルーターというイメージでコンテナ側はポート開放なイメージです。
コンテナには勝手にIP振られます。
もちろんコンテナにssh系をインストールすれば、dockerホストからコンテナへsshもできます。

docker


■docker Imageの確認

とりあえず前回のブログでImageをダウンロードしたのでcentos:6を使いましょう


■Dockerfileの作成

# Getting Base Image
FROM alpine:latest
RUN apk update vim tmux git sudo perl automake cmake qt openssh
RUN apk add –no-cache –virtual update pcre-dev openssl-dev
RUN apk add –no-cache –virtual build-dependencies build-base curl
RUN apk add nginx
EXPOSE 80 443
# echo running
CMD ["echo", "running!"]

# Getting Base Image
FROM centos:6
# start install nginx
RUN yum update -y
RUN yum install -y vim
RUN yum install -y curl
RUN yum install -y epel-release
RUN yum install -y sendmail
RUN yum install -y cronie-noanacron
RUN yum install -y ntp
RUN rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
RUN yum install -y nginx
RUN /etc/init.d/nginx start
RUN chkconfig nginx on
# start install mysql
RUN yum -y install mysql-server
RUN /etc/init.d/mysqld start
RUN chkconfig mysqld on
# start install php
RUN yum -y install php
RUN yum -y install php-mysql
# start install ssh
RUN yum install -y openssh-server
RUN yum install -y openssh-clients
RUN sed -ri 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN mkdir ~/.ssh
RUN chmod 700 ~/.ssh
RUN touch ~/.ssh/authorized_keys
RUN chmod 600 ~/.ssh/authorized_keys
# Port
EXPOSE 22 80 8080 3306
# echo running
CMD ["echo", "running!"]

view raw
Dockerfile_LAMP
hosted with ❤ by GitHub

保存できたらdocker自体のIPを確認しましょう!

・ビルド

こんな名前にしてみました

・インストールを待つ

・確認

できてる

・ビルドしたコンテナを起動する

・webサイトで確認

 

n01

でけた。


■まとめ

次回はMysqlコンテナやDocker HubというGithubみたいな
自分が作ったコンテナをpullしてそれを自分のdockerからcloneしてすぐに
構築できるやり方をブログします。

しかし、早い・・・
vagrant立ち上げるのが遅いからもう使わない・・・

■追記

そのままコンテナ抜けると設定したものが消えるので必ずcommitしましょう!

参考:http://qiita.com/kasaharu/items/d4654193d75c67d65226

LINEで送る
Pocket

カテゴリー: BlogCentOSDockerNginx

adachin

1989年生まれのLancers SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、グループ会社のインフラをECS/Fargateへ移行、CakePHP4での管理画面作成、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

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