#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 stopl 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 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;}