Ubuntu 16.04
Sponsored Link

Docker : Dockerfile を利用する#22016/06/17

 
Dockerfile を利用して Docker イメージを作成し Docker コンテナーを実行します。
Dockerfile には Docker コンテナーの構成内容をまとめて記述するため、構成管理にも役立ちます。
[1] 例として、Apache2 のインストールと index.html の追加、および Apache2 を 80 で起動する Dockerfile を作成します。
root@dlp:~#
vi Dockerfile
# 新規作成

FROM ubuntu
MAINTAINER ServerWorld <admin@srv.world>

RUN apt-get update
RUN apt-get -y install apache2
RUN echo 'Hello DockerFile' > /var/www/html/index.html
RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh
RUN echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh
RUN echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh
RUN echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh
RUN chmod 755 /root/run_apache.sh
EXPOSE 80
CMD /root/run_apache.sh

# イメージのビルド ⇒ docker build -t [イメージ名]:[タグ] .

root@dlp:~#
docker build -t apache_httpd:latest .

.....
.....
.....
Step 10 : RUN chmod 755 /root/run_apache.sh
 ---> Using cache
 ---> 08e27423dcde
Step 11 : EXPOSE 80
 ---> Using cache
 ---> f1b699db5891
Step 12 : CMD /root/run_apache.sh
 ---> Using cache
 ---> bb537256b647
Successfully built bb537256b647

root@dlp:~#
docker images

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
apache_httpd            latest              bb537256b647        8 minutes ago       258.7 MB
my_image/ubuntu_httpd   latest              65d1b6d04b37        2 days ago          258.7 MB
my_image/ubuntu_sshd    latest              dff14a9cd0ff        2 days ago          214.5 MB
ubuntu                  latest              2fa927b5cdd3        3 weeks ago         122 MB

# バックグラウンドでコンテナーを起動

root@dlp:~#
docker run -d -p 80:80 apache_httpd

e62458c61bab8d3ad4d1fea256185e122951db666cbbbf51e6ae98dcdc2e2f22
root@dlp:~#
docker ps

CONTAINER ID    IMAGE           COMMAND                  CREATED         STATUS         PORTS                NAMES
e62458c61bab    apache_httpd    "/bin/sh -c /root/run"   11 seconds ago  Up 11 seconds  0.0.0.0:80->80/tcp   agitated_poitras

root@dlp:~#
curl http://localhost/

Hello DockerFile
関連コンテンツ