2020-12-26に投稿

Dockerの学習 #3 (PS、IMAGES、COMMIT、PUSH、RM、RMI、(BUILD))

Qrunchからお引越しした記事です : created_at: 2019-05-14 22:08:42 +0900

ゴールデンウィークが終わり仕事が始まったため、ログを書く習慣が消えてしまった・・・
あわせて学習も止まってしまいそうだった。危ない危ない。
ちょっとずつでも前に進めていきたい。

今回は基本コマンドで学習してないとこの残りをさらっていく。

参考URL

1.とても分かりやすいサイト
https://morizyun.github.io/docker/about-docker-command.html
2.ドキュメント日本語化プロジェクト(主にコマンドリファレンスを参照)
http://docs.docker.jp/index.html
3.イメージのレイヤ構造について
http://enakai00.hatenablog.com/entry/20140802/1406958412

PS

コンテナの状況確認。

  • コマンド
    docker ps [オプション]
  • 表示例
$ docker ps
CONTAINER ID        IMAGE                        COMMAND                CREATED              STATUS              PORTS               NAMES
4c01db0b339c        ubuntu:12.04                 bash                   17 seconds ago       Up 16 seconds       3300-3310/tcp       webapp
d7886598dbe2        crosbymichael/redis:latest   /redis-server --dir    33 minutes ago       Up 33 minutes       6379/tcp            redis,webapp/db
  • 例1:実行中のコンテナのみ表示
    docker ps
    オプション無しで実行中のみ表示。
  • 例2:全コンテナ表示
    docker ps -a
  • 例3:条件を満たすもののみ表示
    docker ps --filter "name=nostalgic"
    "key=value"の形式で条件指定する。
    この例の場合、コンテナ名にnostalgicを含むものを表示する。
    keyに指定できるのは次の通り。コマンドリファレンスより引用。
    > id(コンテナの ID)
    > label( label= か label== )
    > name(コンテナの名前)
    > exited(整数値 - コンテナの終了コード。実用的なのは --all)
    > status(created|restarting|running|paused|exited|dead)
    > ancestor( [:] 、 、 ) - 特定のイメージから作られた子コンテナを作成します。
    > before(コンテナ ID か名前) - 指定した ID か名前よりも前に作成したコンテナでフィルタ
    > since(コンテナ ID か名前) - 指定した ID か名前よりも後に作成したコンテナでフィルタ
    > isolation (default|process|hyperv)(Windows デーモンのみ)
    > volume(ボリューム名かマウントポイント) - コンテナがマウントしているボリュームでフィルタ
    > network(ネットワーク ID か名前)- コンテナが接続しているネットワークでフィルタ
  • 例4:GOテンプレートを利用した整形
    docker ps --format "table {{.ID}}\t{{.Labels}}"
    (GO言語のテンプレートのことらしいが、使い道がよく分からない・・・)

IMAGES

イメージの一覧を表示。
Dockerのイメージファイルは元のイメージから修正箇所を層(レイヤ)として重ねていくようなものらしい。
オプション指定でそのレイヤ構造を把握することもできる模様。
基本的な使い方をする場合はあまり気にしなくてよいところか。
(レイヤの確認はdocker historyでもできる?)

  • コマンド
    docker images [オプション] [リポジトリ[:タグ]]
  • 表示例
$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<none>                    <none>              77af4d6b9913        19 hours ago        1.089 GB
committ                   latest              b6fa739cedf5        19 hours ago        1.089 GB
<none>                    <none>              78a85c484f71        19 hours ago        1.089 GB
docker                    latest              30557a29d5ab        20 hours ago        1.089 GB
<none>                    <none>              5ed6274db6ce        24 hours ago        1.089 GB
postgres                  9                   746b819f315e        4 days ago          213.4 MB
postgres                  9.3                 746b819f315e        4 days ago          213.4 MB
postgres                  9.3.5               746b819f315e        4 days ago          213.4 MB
postgres                  latest              746b819f315e        4 days ago          213.4 MB
  • 例1:イメージファイルを表示
    docker images
    何も指定しない場合。この場合、中間レイヤと呼ばれる細かいイメージの内容は表示されない。
  • 例2:中間レイヤを含めてイメージ表示
    docker images -a
  • 例3:ダイジェスト値を表示
    docker images -digest
  • 例4:javaリポジトリのイメージを表示
    docker images java
    リポジトリ名称は完全一致。javとかでは×。

COMMIT

停止させたコンテナをイメージファイルにする。
基本、イメージファイルの管理はDockerfileを利用するのが望ましいため、
COMMITはデバッグやサーバ移動などの時に使うものらしい。
- コマンド
docker commit [オプション] コンテナ [リポジトリ[:タグ]]
- 例:コンテナ「c3f279d17e0a」をコミット
docker commit c3f279d17e0a svendowideit/testimage:version3

PUSH

レジストリへイメージへ送信する。PULLの逆。
- コマンド
docker push [オプション] 名前[:タグ]

RM

コンテナの削除。
- コマンド
docker rm [オプション] コンテナ [コンテナ...]
- 例1:コンテナ「redis」の削除
docker rm redis
- 例2:コンテナを強制停止させ削除
docker rm --force redis
SIGKILLシグナルを送信し、強制停止させる。

RMI

イメージの削除。
ショート ID かロング ID、タグ、digest を指定。
- コマンド
docker rmi [オプション] イメージ [イメージ...]
- 例1:test1の削除
docker rmi test1
- 例2:イメージIDが「fd484f19954f」のものを強制削除
docker rmi -f fd484f19954f
削除時にコンフリクトを起こす場合は-f--force指定で強制削除できる。

BUILD

指定したソースコードからのコンテナ作成。
Dockerfileからの作成などで使う。
DockerfileおよびBUILDについてはその存在のみ確認して、今回は割愛。
(調査していると深みにはまりそうなので)

  • コマンド
    docker build [オプション] パス | URL | -

所感

・これで一通り基本的なものはおさえた(はず)。
・DockerFileとBUILDに関しては後でしっかり時間を割いて理解する必要あり。
 ただ、DockerFileからは深い沼の香りがする・・・
・次回こそ色々触ってみるぞ!!!

ツイッターでシェア
みんなに共有、忘れないようにメモ

view_list Docker自己学習
第1回 Dockerの学習 #1 (イメージファイルとPULLコマンド)
第2回 Dockerの学習 #2 (コンテナの起動・操作コマンド RUN、EXEC、ATTACH、STOP・KILL・START)
第3回 Dockerの学習 #3 (PS、IMAGES、COMMIT、PUSH、RM、RMI、(BUILD))
第4回 Dockerの学習 #4 (Wordpressを使おう その1:Mysqlセットアップ)
第5回 Dockerの学習 #5 (Wordpressを使おう その2:Wordpressセットアップ)

ANA

日々勉強中です ( ..)φ

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント