Dockerに馴染むべく、以下の例をなぞってみる。
Dockerでapacheを動かす – in the mythosil
http://mythosil.hatenablog.com/entry/2013/12/08/203530
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ vi Dockerfile FROM ubuntu:12.04 MAINTAINER 84kure RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/source.list RUN apt-get update RUN apt-get -y install apache2 ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_PID_FILE /var/run/apache2.pid ENV APACHE_RUN_DIR /var/run/apache2 ENV APACHE_LOG_DIR /var/log/apache2 ENV APACHE_LOCK_DIR /var/lock/apache2 # ADDコマンドでローカルのディレクトリをDockerイメージにコピー ADD ./htdocs /var/www EXPOSE 80 CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"] |
コピー元ディレクトリにhtmlファイルを作成。
1 2 3 4 5 6 7 |
$ mkdir htdocs $ cd htdocs $ vi index.html <html> <body>Hello, World</body> </html> $ cd .. |
タグ付けして(-t apache)、イメージ作成。
1 |
$ sudo docker build -t apache . |
ポートのリダイレクトを指定して(-p)、バックラウンド(-d)でコンテナ起動。
1 |
$ sudo docker run -p 8080:80 -d apache |
ホストOSからアクセスして確認。 http://192.168.33.10:8080/
1 |
Hello World |
DockerイメージにコピーしたHTMLファイルの内容が表示されるはず。
ログのコピー。コンテナ中のファイルは”コンテナID:パス”と指定できる。
1 2 |
$ sudo docker ps -a ←コンテナIDを調べる $ sudo docker cp 1d734b:/var/log/apache2 . |
コンテナ停止。
1 2 3 |
$ sudo docker stop 1d734b $ sudo docker ps -a $ sudo docker images |