Dockerとは
マンガでわかるDocker ①
マンガでわかるDocker ②
を読んで、なんとなーく理解。とーっても分かりやすい。
DockerとVirtualBoxの用語など整理
VirtualBox | Docker |
---|---|
Image(イメージ) | Box(ボックス) |
Container(コンテナ) | VM(仮想マシン) |
冪等性:高 | 冪等性:低? |
DockerでHelloWorld
docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:b8ba256769a0ac28dd126d584e0a2011cd2877f3f76e093a7ae560f2a5301c00 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest fce289e99eb9 9 months ago 1.84kB docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</pre>
補足
hello-worldは
“Hello from Docker!!” を表示するだけのイメージ
docker run
では
docker pull # イメージ取得
docker create # コンテナ生成
docker start # コンテナ起動
の3つをまとめておこなっている。
docker ps
起動中のコンテナがないのは
“Hello from Docker!!”を表示してすぐに引っ込むため
docker ps -a
とすると、停止中のコンテナも表示できる
DockerでAlpineを使ってみる
Alpineとは
超軽量なLinuxディストリビューションらしい
(CentOS=4GB, Ubuntu=700MB, Alpine=100MB)
パッケージ管理はapkコマンドを使う
DockerでAlpineを立ち上げる
docker pull alpine docker image ls docker create -it alpine cb2296ec5c04810d31743d6b59d335985ebc674889ffb093b0dccc67a5305bda # ====================================================================== docker create -it alpine -i(Keep STDIN open even if not attached) ... 標準入力を開き続ける -t(Allocate a pseudo-TTY) … 疑似ttyを割りあてる # ====================================================================== docker start cb2296ec5c04810d31743d6b59d335985ebc674889ffb093b0dccc67a5305bda cb2296ec5c04810d31743d6b59d335985ebc674889ffb093b0dccc67a5305bda docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cb2296ec5c04 alpine "/bin/sh" 2 minutes ago Up 38 seconds interesting_newton c6d7eda6b0b9 hello-world "/hello" 26 minutes ago Exited (0) 26 minutes ago blissful_bohr docker stop cb2296ec5c04810d31743d6b59d335985ebc674889ffb093b0dccc67a5305bda cb2296ec5c04810d31743d6b59d335985ebc674889ffb093b0dccc67a5305bda docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cb2296ec5c04 alpine "/bin/sh" 6 minutes ago Exited (137) 20 seconds ago interesting_newton c6d7eda6b0b9 hello-world "/hello" 31 minutes ago Exited (0) 31 minutes ago blissful_bohr
コンテナの名前変更
docker rename interesting_newton alpine1 docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cb2296ec5c04 alpine "/bin/sh" 9 minutes ago Exited (137) 2 minutes ago alpine1 c6d7eda6b0b9 hello-world "/hello" 33 minutes ago Exited (0) 33 minutes ago blissful_bohr
コンテナに入る
docker start alpine1 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cb2296ec5c04 alpine "/bin/sh" 18 minutes ago Up 7 seconds alpine1 docker exec -it alpine1 /bin/sh / # ls bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var / # exit
コメント