LoginSignup
22
26

More than 5 years have passed since last update.

Dockerfileを使ったDockerイメージの作り方

Last updated at Posted at 2016-07-18

Dockerfileを使ったDockerコンテナイメージの
作り方の流れを説明。

ひとまず今回は なんでもいいからnginxが動作するところまで を実施。

Dockerイメージの作り方

Dockerfileの解説

Dockerfile
FROM ubuntu:xenial-20160706
MAINTAINER Ryoma Fujiwara
LABEL OBJECT="Nginx latest package install"

ENTRYPOINT ["/bin/bash"]
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get -y install curl
RUN curl http://nginx.org/keys/nginx_signing.key | apt-key add -
RUN apt-get install -y nginx

ベースとなるイメージの確定(FROM)

FROM句では作成するベースとなるDockerのイメージを指定する。
今回はubuntu:xenial-20160706を指定した。

コンテナ起動時の実行コマンド指定(ENTRYPOINT)

ENTRYPOINT句でコンテナ起動時の実行コマンドを指定する。
ここでは具体的に何をしたいといった事柄はないため、/bin/bashを指定している。

コンテナイメージが既にアプリケーションのデプロイが完了している場合はアプリケーションを起動させるためのコマンドを指定することも可能。

実行コマンドの指定(RUN)

RUN句でコンテナビルド時の実行コマンドを指定することができる。

RUN句部分の抜粋
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get -y install curl
RUN curl http://nginx.org/keys/nginx_signing.key | apt-key add -
RUN apt-get install -y nginx

ここでは最新バージョンのnginxのインストールを行っている。
基本的にはインタラクティブな操作が発生しないようにする 必要がある?

イメージのビルド

カレントディレクトリに上記のDockerfileが存在する
場合は以下のコマンドでコンテナイメージをビルドすることができる。

イメージのビルド
docker build -t ubuntu-16.04-nginx:latest `pwd`
docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
ubuntu-16.04-nginx   latest              7063dce16718        12 minutes ago      236.3 MB

作成したイメージの起動

作成したイメージの起動
docker run -d -p 80:80 --name nginx_sample --hostname nginx -i -t ubuntu-16.04-nginx

DockerfileのENTRYPOINTで/bin/bashを指定しているので、
コンテナ起動時のコマンド指定は不要

nginxの起動

今回はなぜかsystemdを使った起動ができないので、
手動でnginxを起動する。

nginxの起動
docker exec -it nginx_sample /bin/bash
service nginx start

ホスト外からブラウザでアクセスするとnginxのトップページが
見えるので、ひとまず、nginxは動作している。

  • nginxのデフォルト画面 Kobito.io5nf3.png

ここまでの残課題

systemctlが正しく動作していないように見えるので
動作するように変更を加えないといけない。

systemctlの動作の問題
systemctl
Failed to connect to bus: No such file or directory
22
26
0

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
22
26