■ はじめに
完全に個人的なメモ。
https://dk521123.hatenablog.com/entry/2024/01/22/210831
で、発生した脆弱性エラーを調査している。 調査の一環として、 AWS EMR リポジトリの Docker イメージをローカル上に Pull し Inspector2の「Affected Package (影響しているパッケージ)」や 「Remediation (修復)」を元に脆弱性エラーについて、 PullしたDockerイメージに対して対応している。 その際のDockerコマンドを纏めておく。
目次
【0】遷移図 【1】docker pull / docker image pull 【2】docker run / docker container run 【3】docker exec / docker container exec 1)root権限を使用するには 【4】docker cp / docker container cp 【5】docker container commit 【6】docker push / docker image push
【0】遷移図
+--------------------+ | AWS ECR Repository | +--------------------+ | ↑ pull | | push ↓ | +------------+ build +--------------+ rmi | Dockerfile | ------> | Docker Image | ------> Deleted +------------+ +--------------+ ↙ ↗ create | ↑ commit run ↙ ↗ commit ↓ | +-----------+ stop +-----------+ rm | Container | ------> | Container | ------> Deleted | (Running) | <------ | (Stopped) | +-----------+ run +-----------+
【1】docker pull / docker image pull
* Dockerイメージをレジストリから取得 => 以下の関連記事を参照
https://dk521123.hatenablog.com/entry/2020/04/13/000000
docker pull [DockerImage] docker image pull [DockerImage] # Dockerイメージ確認 docker images docker image ls
【2】docker run / docker container run
* コンテナ起動
https://dk521123.hatenablog.com/entry/2022/01/20/000000
# コンテナを起動 docker container run --name=[ContainerName] [DockerImage] # コンテナ確認 docker ps docker container ps
【3】docker exec / docker container exec
* 実行中のコンテナ内でコマンドを実行
https://docs.docker.jp/engine/reference/commandline/exec.html
https://docs.docker.jp/engine/reference/commandline/container_exec.html
例1:コンテナ内に入る
docker exec -it [ContainerID/ContainerName] /bin/bash
例2:コンテナ内のファイルを削除
docker exec [ContainerID/ContainerName] rm -rf <YourFile>
1)root権限を使用するには
* 「-u root」または「--user root」を指定する
https://zenn.dev/aidemy/articles/3b34214b9aabf4
https://qiita.com/kazokmr/items/1ffc77d01a67aff90c75
例1:rootユーザとしてコンテナに入る
docker exec -u root -it [ContainerID/ContainerName] /bin/bash
例2:apt コマンドを実行する
docker exec -it --user root [CONTAINER] apt update -y
【4】docker cp / docker container cp
* コンテナとローカルファイルシステム間でファイルやフォルダを コピー
https://docs.docker.jp/engine/reference/commandline/cp.html
https://docs.docker.jp/engine/reference/commandline/container_cp.html
* 詳細は以下の関連記事を参照
https://dk521123.hatenablog.com/entry/2022/04/27/000000
コンテナ内のファイルをホストに落とす
docker cp <ContainerID>:/etc/config.cnf config.cnf
ホストのファイルをコンテナにコピー
docker cp config.cnf <ContainerID>:/etc/config.cnf
【5】docker container commit
* コンテナからDockerイメージを作り直す
https://docs.docker.jp/engine/reference/commandline/commit.html
docker commit {対象のコンテナID(コンテナ名)} {作成したいイメージ名} docker container commit {対象のコンテナID(コンテナ名)} {作成したいイメージ名}
【6】docker push / docker image push
* イメージをリポジトリにPush
https://docs.docker.jp/engine/reference/commandline/push.html
docker push xxxx.xxx.ecr.us-west-2.amazonaws.com/hello-world-ecr:latest
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
Docker ~ 基本編 / docker imageコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ 基本編 / docker container コマンド ~
https://dk521123.hatenablog.com/entry/2022/01/20/000000
Docker ~ 基本編 / レポジトリに関するコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/21/000000
Docker ~ ファイルをコンテナにコピー ~
https://dk521123.hatenablog.com/entry/2022/04/27/000000
Amazon ECR ~ 脆弱性診断 / Amazon Inspector ~
https://dk521123.hatenablog.com/entry/2024/01/22/210831
Amazon ECR ~ Dockerイメージを Pull & Push ~
https://dk521123.hatenablog.com/entry/2023/12/02/024631