Hands-On Lab: Docker Static Analysis with Dockle and Hadolint
Hands on Lab
Dockle: Setup, Usage, and Cleanup
-
Change the directory.
cd /workspaces/ecr_eks_security_masterclass_public/docker-lab
-
Download and install the latest version of Dockle on Debian/Ubuntu:
VERSION=$(curl --silent "https://api.github.com/repos/goodwithtech/dockle/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/' ) && curl -L -o dockle.deb https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.deb sudo dpkg -i dockle.deb && rm dockle.deb
-
Pull a sample Docker image:
docker pull nginx:latest
-
Run Dockle on the pulled Docker image:
dockle nginx:latest
Review the report for vulnerabilities and misconfigurations.
Hadolint: Setup, Usage, and Cleanup
-
Install Hadolint as a Docker container:
docker pull hadolint/hadolint
-
Create a sample
Dockerfile
:cat <<EOF > Dockerfile FROM nginx:latest RUN apt-get update && apt-get install -y curl CMD ["nginx", "-g", "daemon off;"] EOF
-
Run Hadolint on the
Dockerfile
.docker run --rm -i hadolint/hadolint < Dockerfile
-
Ignore specific linting rules.
cat Dockerfile | docker run --rm -i hadolint/hadolint hadolint --ignore DL3008 -
Cleanup Dockle
-
Remove the Docker image:
docker rmi nginx:latest
-
Uninstall Dockle if not needed:
sudo apt remove dockle
Cleanup Hadolint
-
Remove the
Dockerfile
:rm Dockerfile
-
Remove the Hadolint Docker image:
docker rmi hadolint/hadolint