【Docker】Docker ~ 基本編 / dockerコマンド ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/04/24/160044
https://dk521123.hatenablog.com/entry/2018/04/10/234030
https://dk521123.hatenablog.com/entry/2020/04/11/000000

の続き。

今回は、dockerコマンド を扱う。
また、以下の動画を見ながらやるといいかも。

https://dotinstall.com/lessons/basic_docker

目次

【0】Docker における基本操作
【1】Dockerイメージに関するコマンド
 1)Dockerイメージの検索:docker search
 2)Dockerイメージのダウンロード:docker pull
 3)取得したDockerイメージ一覧表示:docker images
 4)Dockerイメージの詳細設定表示:docker inspect
 5)Dockerイメージ削除:docker rmi
【2】Dockerコンテナに関するコマンド
【3】レポジトリに関するコマンド
 1)ログイン:docker login
 2)新しいイメージを作成する:docker build -t
 3)タグづけする:docker tag
 5)コンテナイメージをリポジトリにプッシュする:docker push
 6)コンテナイメージをリポジトリからプルする:docker pull
 7)Dockerイメージのexport:docker save
 8)Dockerイメージのimport:docker load

【0】Docker における基本操作

* Docker における基本操作は、以下に大別できる。
~~~~~~~~~~
1)Dockerイメージに関する操作
2)Dockerコンテナに関する操作
~~~~~~~~~~

 【1】Dockerイメージに関するコマンド

1)docker search
2)docker pull
3)docker images
4)docker inspect
5)docker rmi

1)docker image build

* Dockerイメージのビルド

基本構文

docker image build -t [image name]:[tag] [Dockerfile path]

オプション

# オプション 説明
1 -t -t [イメージ名]:[タグ]で指定
2 -f -f [Dockerfile Name]で指定
3 -pull --pull=trueでDockerイメージを再取得

コマンド例
https://dk521123.hatenablog.com/entry/2022/01/14/102719

# より抜粋

# DockerファイルからDockerイメージを作成
docker image build -t hello/world:latest .

2)docker search

* Dockerイメージの検索

コマンド例

sudo docker search centos | more

2)Dockerイメージのダウンロード:docker pull

sudo docker pull centos

3)取得したDockerイメージ一覧表示:docker images

sudo docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              e934aafc2206        3 days ago          199 MB

4)Dockerイメージの詳細設定表示:docker inspect

sudo docker inspect e934aafc2206

5)Dockerイメージ削除:docker rmi

# docker rmi [イメージID] (rmi = REmove Image)
docker rmi e934aafc2206

docker rmi centos

 【2】 Dockerコンテナに関するコマンド

* 以下の関連記事を参照のこと。

Docker ~ 基本編 / docker container コマンド ~
https://dk521123.hatenablog.com/entry/2022/01/20/000000

1)動いているコンテナの確認:docker ps

docker ps

停止しているコンテナの確認:docker ps -a

docker ps -a

コンテナ一覧表示:docker ps -a

# 実行完了後を表示。「Exited (0)」は正常終了)
sudo docker ps -a

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                     PORTS               NAMES
3c38d46e852d        centos              "echo 'Hello World'"   5 minutes ago       Exited (0) 5 minutes ago                       gallant_yonath

実行完了後の最新3履歴を表示

sudo docker ps -a -n=3

【3】 レポジトリに関するコマンド

レポジトリへのイメージ登録するためのコマンドを纏める

https://dk521123.hatenablog.com/entry/2020/05/22/165711

でECRへの登録に使ったコマンド。 Docker Hub でも使える。

1)ログイン:docker login
2)新しいイメージを作成する:docker build -t
3)タグづけする:docker tag
5)コンテナイメージをリポジトリにプッシュする:docker push
6)コンテナイメージをリポジトリからプルする:docker pull
7)Dockerイメージのexport:docker save
8)Dockerイメージのimport:docker load

1)ログイン:docker login

docker login [オプション] [サーバ]

コマンド例

# --username:ユーザ名、--password:パスワード
docker login --username admin --password password xxxx.xxx.ecr.us-west-2.amazonaws.com

セキュアに行うには...

# --password-stdin(標準出力からパスワードを設定) を使用する
cat ~/.password.txt | docker login --username admin --password-stdin xxxx.xxx.ecr.us-west-2.amazonaws.com

2)新しいイメージを作成する:docker build -t

docker build -t [リポジトリ名]

コマンド例

docker build -t hello-world-ecr

3)タグづけする:docker tag

docker tag [イメージID] [リポジトリ名]:[タグ]

コマンド例

docker tag hello-world-ecr:latest xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr:latest

5)コンテナイメージをリポジトリにプッシュする:docker push

docker push [コンテナ名]

コマンド例

docker push xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr:latest

6)コンテナイメージをリポジトリからプルする:docker pull

docker pull registry/repository[:tag]

コマンド例

# docker pull registry/repository[:tag]
docker pull xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr:latest

7)Dockerイメージのexport:docker save

# Dockerイメージをtarファイルとして出力する
docker save [コンテナ名] -o [Tarファイル名].tar

コマンド例

docker save hello-world-ecr:latest -o hello-world-ecr.tar

8)Dockerイメージのimport:docker load

# tarファイルをDockerイメージとしてロードする
docker load -i [Tarファイル名].tar

コマンド例

docker load -i hello-world-ecr.tar

# 確認
docker images

参考文献
https://qiita.com/leomaro7/items/e5474e67a8e41536f0ff

関連記事

Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ 基本編 / docker container コマンド ~
https://dk521123.hatenablog.com/entry/2022/01/20/000000
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / docker-compose ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
LocalStack ~ ローカルで疑似AWSを作成する ~
https://dk521123.hatenablog.com/entry/2019/12/14/010524
Amazon ECR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/22/165711