- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
----
#contents
** イメージの操作の超基本 [#ab7dcf62]
*** イメージを探す [#f5ddb348]
root@photon-machine [ ~ ]# docker search centos | more
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 3050 [OK]
*** イメージをおとしてくる [#j4f77233]
root@photon-machine [ ~ ]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
root@photon-machine [ ~ ]#
いまはイメージがなにもない状態です。
root@photon-machine [ ~ ]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
Digest: sha256:c577af3197aacedf79c5a204cd7f493c8e07ffbce7f88f7600bf19c688c38799
Status: Downloaded newer image for centos:latest
root@photon-machine [ ~ ]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 67591570dd29 6 weeks ago 191.8 MB
root@photon-machine [ ~ ]#
落ちてきているのが確認出来ました。
***イメージを消す [#v42e7728]
root@photon-machine [ ~ ]# docker rmi centos:latest
Untagged: centos:latest
Untagged: centos@sha256:c577af3197aacedf79c5a204cd7f493c8e07ffbce7f88f7600bf19c688c38799
root@photon-machine [ ~ ]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
root@photon-machine [ ~ ]#
消えました。
** コンテナの操作の超基本 [#s8f390f3]
*** CentOSを起動して、Hello Worldする [#ya6fe647]
root@photon-machine [ ~ ]# docker pull centos
root@photon-machine [ ~ ]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 67591570dd29 6 weeks ago 191.8 MB
root@photon-machine [ ~ ]# docker run centos echo "hello world"
hello world
root@photon-machine [ ~ ]#
イメージからコンテナが作成され、実行されました。そして終了しました。
*** コンテナの情報表示 [#d2838027]
root@photon-machine [ ~ ]# docker ps -a -n=1 ←-a: 終了したモノも表示、 -n=xx 直近 xxコを表示
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
60d7c5d76f05 centos "echo 'hello world'" About a minute ago Exited (0) About a minute ago berserk_wright
root@photon-machine [ ~ ]#
コンテナが作成されたのが分かります。 docker rm 60d7c5d76f05 で削除可能です。
*** バックグラウンド実行 [#o0e4b7fd]
root@photon-machine [ ~ ]# docker run -d centos free -s 3
94f07d1b91371236b66fdd4ac53143592cf4bc0f64a0dc6c666cfa4cbe57ba1a
root@photon-machine [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94f07d1b9137 centos "free -s 3" 10 seconds ago Up 9 seconds jolly_fermi
root@photon-machine [ ~ ]#
-d でバックグラウンド実行されます。
*** バックグラウンド実行したモノをフォアグラウンドにもってくる。 [#bce418b2]
フォアグラウンドにもってくる((というかバックグラウンド実行したモノに、につなげる))には。。
root@photon-machine [ ~ ]# docker attach --sig-proxy=false 94f
total used free shared buff/cache available
Mem: 2053100 75364 342388 275160 1635348 1518696
Swap: 0 0 0
sig-proxy オプションを指定することで Ctrl-C で抜けることができるようになります。
*** バックグラウンド実行したモノを止める [#u67d3ce3]
root@photon-machine [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94f07d1b9137 centos "free -s 3" 4 minutes ago Up 4 minutes jolly_fermi
root@photon-machine [ ~ ]# docker kill 94f
94f
root@photon-machine [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@photon-machine [ ~ ]#
停止しました。さらに docker start 94f で再度スタートさせることができます。
ついでにいうと docker run は、 docker create(イメージからコンテナ作成) と docker start(開始)をあわせて実施するコマンドのようです。
まとめるとこんな感じみたい。
docker create xx → 作成
docker start [コンテナID] → 開始 (create/start 一緒にやる場合は run )
docker kill/stop [コンテナID] → 停止
docker ps で確認
docker run -d xx でバックグラウンド実行、指定しないとフォアグラウンド
docker attach --sig-proxy=false [コンテナID]で接続 Ctr-C で切断
*** バックグラウンドのログを見る [#ifaad43b]
root@photon-machine [ ~ ]# docker logs 94f
total used free shared buff/cache available
Mem: 2053100 69716 348616 275160 1634768 1524396
Swap: 0 0 0
total used free shared buff/cache available
Mem: 2053100 69740 348372 275160 1634988 1524420
Swap: 0 0 0
...
root@photon-machine [ ~ ]#
バックグラウンド実行されているモノのログを見ることができます。
** コンテナからイメージを作成する基本 [#n5a97480]
コンテナから新たなイメージを保存してみます。そのために、コンテナの中に入って自由にコマンドが打てないといけないので、
root@photon-machine [ ~ ]# docker run -i -t centos /bin/bash
[root@003321389bfe /]#
って -d でも無指定でもない指定で /bin/bashを実行します。 -i はインタラクティブ、-t はターミナルでつなぐって意味ぽいです。
コンソールが返ってきました。中に入ったところですね。
***コンテナを修正する [#je9236a2]
中に入ったので、なんかファイルを作成します。コンテナの中身を変更する作業をやって、んでそのコンテナからイメージを作成します。
[root@003321389bfe /]# touch hogehoge.txt
[root@003321389bfe /]# ls -lrt
total 64
...
-rw-r--r-- 1 root root 0 Jan 29 12:18 hogehoge.txt
[root@003321389bfe /]# exit
exit
root@photon-machine [ ~ ]# docker ps -a -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
003321389bfe centos "/bin/bash" 2 minutes ago Exited (0) 13 seconds ago hungry_brown
root@photon-machine [ ~ ]#
イメージからコンテナを作ったオリジナル状態から、ファイルを一個作ったコンテナができあがりました。
***修正したコンテナからイメージを作成する。 [#ye40e440]
下記のコマンドでこのコンテナから新たなイメージを作成します。
root@photon-machine [ ~ ]# docker commit 003 masatomix/hoge ←元のコンテナIDと新たなイメージの名前を指定。
sha256:c2109b07b71b759dd4184a6f3d147581fa68e834d99401c1a30aa680162726ce
root@photon-machine [ ~ ]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
masatomix/hoge latest c2109b07b71b 4 seconds ago 191.8 MB
作成されました!
中身の確認です。hoge.txtが存在するはずです。
root@photon-machine [ ~ ]# docker run -i -t masatomix/hoge /bin/bash
[root@1f35948112f6 /]# ls -lrt hogehoge.txt
-rw-r--r-- 1 root root 0 Jan 29 12:18 hogehoge.txt
[root@1f35948112f6 /]#
これで「元のイメージからコンテナを作成して、修正してから、イメージを保存する」事ができました。
ようするに誰かのイメージをおとしてきて、それに修正を加えて、新たなイメージとして保存する、という事できるってことですね。
**関連リンク [#e3f42171]
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}