Featured image of post 【簡単サーバー構築】Dockerfileでnginxを立ち上げてみよう!

【簡単サーバー構築】Dockerfileでnginxを立ち上げてみよう!

1282文字

簡単サーバー構築

前回の記事にて、Dockerfileを使ったコンテナの起動方法を紹介しました。

今回は同じようにDockerfileを使ってnginxを起動し、簡単なサーバーを立ち上げるところまでをご紹介しようと思います。

手順

前提

Dockerfileの作成

まずは以下のDockerfileを作成してください。

FROM centos:7
RUN yum update -y && yum clean all
RUN yum install -y http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum install -y --enablerepo=nginx nginx
RUN yum swap -y fakesystemd systemd && yum clean all
ADD index.html /var/www/html/
ADD nginx.conf /etc/nginx/conf.d/
RUN mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bk
RUN systemctl enable nginx
EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]

index.html

次にnginxに配置するindex.htmlを作成しましょう。
今回は単純にDocker内部のnginxに配置して表示確認するレベルのものでいいので以下の内容で良いです。

<html>
  <body>
    

# Hello, World! From Docker!!


  </body>
</html>

nginx.confの作成

次にnginxの設定ファイルも用意しましょう。
こちらも同じく表示確認レベルのもので良いです。

server {
	listen 80 default_server;

	root /var/www/html;
	index index.html index.htm;

	server_name nginx;

	location / {
		try_files $uri $uri/ =404;
	}
}

イメージファイルの作成

次に以下のコマンドでDockerイメージを作成しましょう。

docker build -t centos7/nginx_from_dockerfile --no-cache=true .


コマンド実行後、以下の実行ログが表示されればimageファイルの作成は完了です。

以下のコマンドでimgaeファイルを確認してみましょう。

docker images



無事にイメージファイルが作成されてますね。

コンテナ起動

では、実際にimageファイルからコンテナを作成して起動してみましょう。

以下のコマンドを実行してみてください。

docker run -d --name docker_nginx_server -p 8080:80 centos7/nginx_from_dockerfile


docker runコマンドはコンテナをimageファイルから起動します。各オプションの意味としては、

-dコンテナをデタッチドモード(バックグラウンド)で起動する
--nameコンテナ名を定義する
-pホスト側のポート番号とコンテナ側のポート番号を紐付けて公開する

特にエラーが出なければ、以下のコマンドでコンテナが実行されているか確認してみましょう。

docker ps



コンテナが起動していて一覧に表示されていますね。

ブラウザアクセス

では、実際にブラウザからアクセス出来るか確認してみましょう。
http://localhost:8080

無事にアクセス出来ました!!
念のため、以下のコマンドでコンテナを停止してもう一度アクセスしてみましょう。

docker stop docker_nginx_server


サーバーが停止しているのでアクセスが出来なくなりました。

コンテナの再起動

もう一度nginxコンテナを起動しようとして、先ほどのコマンドを実行すると、エラーが発生してしまいます。

これは、同じ名称のコンテナが存在していることを表すエラーです。

すでに作成済みのコンテナ再起動なので以下のコマンドで起動可能です。

docker start docker_nginx_server

コンテナの削除

最後にお片づけをしましょう。
まずはコンテナの削除です。

以下のコマンドを実行してください。

docker rm docker_nginx_server

イメージの削除

次にDockerイメージファイルの削除です。
以下のコマンドを実行してください。

docker rmi centos7/nginx_from_dockerfile


これでコンテナとイメージを削除して元の状態に簡単に戻せます。

終わりに

如何だったでしょうか?
Dockerを使えばホストマシンにミドルウェアを入れる必要が無いので、環境構築もしやすくマシン内部を汚すことが無くなるので非常にスッキリします。

皆さんもDockerを使いこなして、環境構築のコストを抑えてみてください♪