Dockerを使ってみる

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

コメント

タイトルとURLをコピーしました