概要
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が無事に起動していることがわかります。