Docker

MacOS上のでDocker

①container <-> ② LinuxVM <-> OSX

のようになってるようだ。①はdocker psやdocker port web などで調べられる。②はdocker-machine ls などで調べられる。

簡単なWebサーバ

以下のようなDockerfileを作る。

FROM nginx
COPY some_contemts /usr/share/nginx/html

しかるのちに

$ docker build -t container_name .
$ docker run -d -p 8080:80 container_name

これでnginxがsome_contents以下をサーブし始めるので、 Linux_VMのIP:8080にブラウザからアクセスすればOk

簡単なPythonベースのWebサーバ

フレームワークはとりあえずJunoあたりでいきますか。。。 下記のようなindex.pyとかを作って。。

#!/usr/bin/env python
# encoding:utf-8
from juno import *

@route('/')
def index(web):
    return 'Hello, Juno!'

@route('/hello')
def index(web):
    return 'Hello!'
run()

Dockerfileは下記。

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install SQLAlchemy Jinja2 Mako Werkzeug
RUN easy_install juno
CMD python ./index.py

なんかjunoはpipだとこけた。

$ docker build -t juno .
$ docker run -d -p 8000:8000 juno

junoのデフォルトポートは8000みたい。 http://myserver:8000/ でアクセスできた。404.htmlがないとかfaviconがないとかいろいろ言われるがまあそれは必要に応じて。

docker-compose

複数コンテナをまとめてymlファイルで管理する。開始、終了は下記でできる。

$ docker-compose up -d
$ docker-compose stop