1
0

More than 3 years have passed since last update.

Dockerコマンドおさらい① Docker Hub, AWS ECRへのpushもあるよ

Posted at

やったことの整理を含めてDockerコマンドのおさらいとして書きました
ECRのpushとかも書きました(ECRにリポジトリ作ったら手順は書いてあるものですが...)

コンテナ一覧表示と削除

  • 現在起動中のコンテナの一覧表示
    $ docker ps
★ 使うオプション
停止中を含め全てのコンテナの一覧を表示  
$ docker ps -a

コンテナIDのみを表示  
$ docker ps -q

停止中含め全てのコンテナのIDのみ表示  
$ docker ps -aq

--filter(-f) でコンテナ情報を抽出して表示  
停止中のコンテナ一覧を表示  
$ docker ps -f "status=exited"  
NAMESにmysqlを含むコンテナを表示(=としているが完全一致ではなく、含むものも抽出する)  
$ docker ps -f "name=mysql"
  • dockerコンテナの削除
    $ docker rm [コンテナIDs]
★ 使うオプション
コンテナ起動中でも強制的に削除
$ docker rm -f xx1234xx56

コンテナと関連づけられたボリュームも削除
$ docker rm -v xx1234xx56
(volumeはコンテナのストレージでコンテナを削除しても消えない)
  • 未使用のVolumeを一括削除したいとき
    $ docker volume prune

  • 使われていないコンテナの一括削除
    $ docker container prune

イメージの構築と削除

  • dockerイメージを構築する
    $ docker build [path]
★ 使うオプション
イメージ構築時にキャッシュを使わない  
$ docker build --no-cache .
(これを指定しないと、Dockerfileを更新してbuildしてもキャッシュから作られて反映されない)  

build時にタグをつける  
$ docker build -t [名前:タグ] .
  • 構築したイメージにタグをつける
    $ docker tag [イメージ名orイメージID] [ホスト名/イメージ名:タグ]
    タグは何も指定しない場合は latest になる
$ docker tag 0011ea89b707 mysql:test1.0
$ docker tag mysql mysql:test2.0

★ Docker Hubにpush
Docker Hubにpushする用のイメージとタグはイメージ名:タグの前にユーザー名が必要
形式「ユーザー名/イメージ名:タグ」
$ docker tag mysql koni4/mysql:test3.0
Dockerにログイン
$ docker login
DockerHubにpush
$ docker push koni4/mysql:test3.0

★ ECRにpush
AWS ECRなどプライベートリポジトリの場合
$ docker tag mysql xxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/mysql:test:4.0
AWSにECRのアクセス権限があるユーザーでログイン
$ aws ecr get-login-password --profile ecr-user | docker login --username AWS --password-stdin xxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/mysql
AWS ECRにpush
$ docker push xxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/mysql:test:4.0
  • ローカルに保存したdockerイメージ一覧を表示
    $ docker images
★ 使うオプション
タグ付けされていないイメージを表示  
$ docker images -f "dangling=true"
(タグがnoneになっているものは基本的に使用していないゴミイメージ)
  • ローカルに保存したdockerイメージを削除
    $ docker rmi [イメージIDs]
★ 使うオプション
タグがnoneのイメージを一括削除  
$ docker rmi $(docker images -f "dangling=true" -q)
  • 使われていないdockerイメージの一括削除
    $ docker image prune

  • 使われていないコンテナ、イメージ、ネットワークを一括削除
    $ docker system prune

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0