GW大してやることもないので、恥ずかしながら今まで使ったことのなかったDockerでそれっぽいことをやってみる。
Qiita 投稿初なので温かい目で見てやってください。
やりたいこと
やろうとしてることは以下
- mac book pro にDocker をインストール
- ubuntu + python(miniconda) + flask + sample webapp実行環境(image)をDocker fileから作成
- imageからcontainerを作成(webapp実行)
※sample webapp はgithub上に作成して、cloneしてくる。
実行環境
Mac Book Pro MacOS Sierra
1. Docker のインストール
mac にdocker install する方法としてどうやら二つあるらしい。
- Docker tool box
- Docker for mac
どちらもローカル上でDocker host を動かす方法なのだが、違いとしては、
Docker tool boxは、インストールすると同時にdocker machine とVirtual Boxがインストールされ、virtual box上でDocker hostを動かすのに対し、
Docker for macはMacのネイティブの仮想環境(HyperKit)上にDocker hostが構築されるらしい。(簡単にいうと)
ってことなのでDocker for macでDockerをインストールする。
Docker for mac は以下からダウンロード
https://store.docker.com/editions/community/docker-ce-desktop-mac
普通のアプリケーションと同じように、インストーラーを実行すると以下のようなくそかわいいアイコンでインストールされる。
Docker はアイコンがかわいいから好き。
くそかわアイコンをダブルクリックで実行すると、ツールバーにクジラのアイコンが出現する。これで、Docker hostが起動している。
コンソールを開いてdockerコマンドを叩いてみると。。。
XXXXXX-MacBook-Pro:~ XXXXXXX$ docker
Usage: docker COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default
"/Users/yoshidatomoya/.docker")
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level
("debug"|"info"|"warn"|"error"|"fatal")
(default "info")
--tls Use TLS; implied by --tlsverify
--tlscacert string Trust certs signed only by this CA (default
"/Users/yoshidatomoya/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default
"/Users/yoshidatomoya/.docker/cert.pem")
--tlskey string Path to TLS key file (default
"/Users/yoshidatomoya/.docker/key.pem")
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit
Management Commands:
checkpoint Manage checkpoints
config Manage Docker configs
.
.
.
おおお動いた。
試しに、ubuntuのimageから、ubuntu containerを立ち上げてみる。
以下のコマンドを実行
docker run -it ubuntu
-it オプションをつけることによって立ち上げたcontainerを操作できる。
XXXXXX-MacBook-Pro:~ XXXXXXX$ docker run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
a48c500ed24e: Already exists
1e1de00ff7e1: Already exists
0330ca45a200: Already exists
471db38bcfbf: Already exists
0b4aba487617: Already exists
Digest: sha256:c8c275751219dadad8fa56b3ac41ca6cb22219ff117ca98fe82b42f24e1ba64e
Status: Downloaded newer image for ubuntu:latest
root@5fa204eabf4f:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"
root@5fa204eabf4f:
最新のubuntu 18.04のcontainerが立ち上がった。
初回は少し時間がかかったが2回目以降は即立ち上がった。
めちゃくちゃ便利。。。Vagrantとか使わなくなりそう。。。
今回はここまで。
次回は、Docker file を作成してwebapp 実行環境を構築します。