Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Ubuntuをベースに、NginxをインストールするDockerfileを書いてみる

More than 1 year has passed since last update.

概要

Dockerfileを使って環境構築の自動化を目指します。

動作環境

Mac OS High Sierra 10.13.6
Docker version 18.03.1-ce, build 9ee9f40

Dockerfileの中身

# Getting Base Image
FROM ubuntu:16.04

# Author Info
MAINTAINER ____easy

RUN apt-get update
RUN apt-get install -y curl

# install nginx
RUN touch /etc/apt/sources.list.d/nginx.list
RUN echo "deb http://nginx.org/packages/ubuntu/ precise nginx" >> /etc/apt/sources.list.d/nginx.list
RUN echo "deb-src http://nginx.org/packages/ubuntu/ precise nginx" >> /etc/apt/sources.list.d/nginx.list
RUN curl http://nginx.org/keys/nginx_signing.key | apt-key add -
RUN apt-get update
RUN apt-get install -y nginx

# set working directory
WORKDIR /root

# Port
EXPOSE 22 80 

# change default html file of nginx
COPY ./html /usr/share/nginx/html

htmlフォルダの生成

カレントディレクトリ内に、htmlというフォルダを作成して、その中に適当なhtmlファイルをおいておきます。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

Docker iamgeの生成

Dockerfileが存在するディレクトリ内で、以下のコマンドを実行します。

$ docker build -t nginx-test .

・・・省略・・・

Successfully built 3ed11c8e6381

以下のコマンドで生成されたイメージを確認することができます。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx-test          latest              d7be6f50f040        8 seconds ago       176MB

Docker run

$ docker run -it -p 8080:80 --name nginx-container nginx-test:latest /bin/bash
root@bbc8a788cfe1:~#  ←コンテナの中に入れる

-dオプションをつけなければ、フォアグラウンドでの実行となり、コンテナを抜けると、
  コンテナは停止します。
  コンテナを停止させずにコンテナから抜けたい時は、Ctrl + P + Q を入力するとOK。

次に、コンテナ内でnginxを起動させます。

root@bbc8a788cfe1:~#/etc/init.d/nginx start

webサーバーにアクセス

ブラウザで、http://localhost:8080 にアクセスすると、差し替えておいたhtmlが無事に起動していることがわかります。

____easy
no pain no gain
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away