15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OSX上のdockerでCentOS 6.5にnginxを公式レポジトリからインストールするサンプル

Posted at

dockerのインストール

dockerとboot2dockerは
OS X をサポートした Docker 0.8 を試す - Qiitaの手順でインストールしました。

~/.bashrcには以下の1行を追加します。

~/.bashrc
export DOCKER_HOST=tcp://localhost:4243

nginxをインストールするDockerfile

Dockerでnginxサーバー立ててみた。あとDockerの使い方とか。 - Less is Bestを参考にしつつ、好みに応じて改変しました。
改変の内容は以下の通りです。

  • rpmの署名を検証する公開鍵をインストール
  • nginx公式レポジトリはrpmをyumでインストール
  • nginx.confはそのままで、nginxを起動時に"daemon off;"を引数で指定
//github.com/hnakamur/docker-nginx-lua/blob/16d7065c2c80fedfabd3568950775b588186dc55/Dockerfile
FROM tianon/centos:6.5
MAINTAINER Hiroaki Nakamura <hnakamur@gmail.com>

RUN yum update -y && \
    rpm --import http://nginx.org/keys/nginx_signing.key && \
    yum install -y http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm && \
    yum install -y nginx

EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]

ちなみに http://stackoverflow.com/a/21468956 で知ったのですが、AUFSを使う場合のRUNの個数制限は昔は42個だったのがdockerのバージョン0.7.2以降は127個に増えたそうです。docker/CHANGELOG.md at master · dotcloud/docker

とはいえ、節約した方がいいので1つのRUNで複数のコマンドを&&で繋いで実行するようにしています。1行が長くなるので行末にバックスラッシュを入れて改行しています。

イメージのビルド

Dockerfileのあるディレクトリで以下のコマンドを実行します。

docker build -t hnakamur/nginx .

最速Docker研究会(DockerのTipsを20個上げていくぜ編) - Happy New Worldの「3. docker build時には必ずタグを付ける。」を参考に、タグを付けてbuildするようにしました。

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

DockerをBoot2dockerで動かした際のポートフォワードをCLIから設定する - Qiita
Docker on OSX: Port Forwarding | FogBlogを参考に以下のコマンドで設定しました。

私の手元の環境ではOS Xでnginxを80番ポートを使用していたので、OS Xの8080番ポートをVirtualBoxの80番ポートにフォワーディングするようにしました。

VBoxManage controlvm "boot2docker-vm" natpf1 "nginx,tcp,127.0.0.1,8080,,80"

起動方法

docker run -d -p 80:80 hnakamur/nginx

で起動します。-p 80:80でVirtualBoxの80番ポートをdockerのhnakamur/nginxコンテナの80番ポートにフォワーディングしています。

OSXからcurlで確認

ポートフォワーディングは
OSX 8080 ---> VirtualBox 80 ---> hnakamur/nginx 80
という状態になっていますので、

curl http://localhost:8080

と実行すれば、OSXからdockerコンテナのnginxにアクセスできました。

15
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?