やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

Ubuntu 16.04 Dockerメモ2

5月4日の続き。
いろいろ試している間に環境が微妙に不安定になってきたので、
Dockerそのものを入れ直してみました。


今回の作業でストレージエンジンがデフォルトのaufsに戻ったのですが、
普通にCentOS7(httpd入り)のコンテナが起動しました。
今日までの間にDockerfileやコマンドをいじりまくってるので、
何が原因でうまく行っていたのかは定かではありませんが、
ひとまずこれで様子見です。


以下、やったこと。


【Docker再インストール】
・作ったコンテナ、イメージをすべて削除する。


・Synapticパッケージマネージャからdocker-engineを削除


・Docker公式ページに従って、インストールやり直し。
5月4日にdevicemapperを入れたのが効いていたのか、Dockerサービス起動時に
下記メッセージが出力されてコケる(適宜改行しています)。

                                                                    • -

level=fatal msg="Error starting daemon: error initializing graphdriver:
\"/var/lib/docker\" contains other graphdrivers: devicemapper;
Please cleanup or explicitly choose storage driver (-s )"

                                                                    • -

https://github.com/docker/docker/issues/14088
に引っ掛かっていたようで、
/var/lib/docker/devicemapper
を削除したうえで
$ sudo systemctl start docker.service
したら正常に起動した。




【イメージおよびコンテナ作成】
・index.html:適当に作る
・phpinfo.php:適当にphpinfo()書く
・Dockerfile

                                                                    • -

FROM centos:7


# Install Middleware
RUN yum -y update && yum -y install iproute && \
yum -y install httpd && yum -y install mod_ssl && yum -y install php && \
yum -y install php-pgsql && yum clean all


# Set Locale ja_JP
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
RUN unlink /etc/localtime
RUN ln -s /usr/share/zoneinfo/Japan /etc/localtime


# Setup Files for PHP Contents
ADD index.html /var/www/html
ADD phpinfo.php /var/www/html

                                                                    • -



$ sudo docker pull centos:7
$ sudo docker build -t (イメージ名) .
$ sudo docker run --privileged -d -p 8880:80 --name (コンテナ名) -e "TZ=Asia/Tokyo" (イメージ名) /sbin/init
$ sudo docker exec -it (コンテナ名) /bin/bash
[コンテナ]# systemctl start httpd.service
[コンテナ]# ps -ef | grep httpd


http://localhost:8880/phpinfo.php にアクセスしてPHP Infoを確認。