前回 の続き。
Docker チュートリアル2章・・・に入る前に、
今朝やってみたら、docker info
がうまく動かない
$ docker info
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
コンテナが動くには、前提として、docker daemonが起動している必要がある。
Docker for macをまだ起動してなかっただけでした、てへぺろ。
第2章Container
どうやらDockerを最低限使いこなすにはこの3つの概念が必要なようだ。
- Stack
- Services
- Container(今ここ)
Dockerfileを作る
ContainerをDockerfile
なるもので定義する。
テキトーに作業フォルダに
Dockerfile
をつくる。
ついでapp.py
と
requirements.txt
も。
中身は読んでもあんまり理解できず。でもコピペして進む。
$ docker build -t friendlyhello .
ファイル名を間違えてるとここで怒られる。
でうまくいくと
...
Successfully built 8543f6131f0c
...
とかなんとか出てくる。
実行
$ docker run -p 4000:80 friendlyhello
なんかエラーでた
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
172.17.0.1 - - [10/Jul/2018 23:16:35] "GET / HTTP/1.1" 200 -
172.17.0.1 - - [10/Jul/2018 23:16:36] "GET /favicon.ico HTTP/1.1" 404 -
エラーじゃなくて警告(WARNING)だった。
チュートリアルどおり http:localhost:4000
叩いたら
なんかhello worldでてきたよ!

$ curl http://localhost:4000/
こっちは駄目でした。接続拒否される・・・と思ったら
同じターミナルでやろうとして、
docker-run-friendlyhelloをCtrl+Cで止めてたからでした。
別ターミナル開いてやるか、バックグラウンドで実行してからcurlすれば、、、
$ curl http://localhost:4000/
<h3>Hello World!</h3><b>Hostname:</b> 2b75bdad070c<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>[~]
見れました。
containerの終了の方法は
docker container ls
でcontainerIDを確認後、
docker container stop {さっきのID}
ってやるだけ。簡単ですね。
2章はまだ半分だけど今日はここまで。