Skip to content
tezvyn:
Menu

Docker & Kubernetes

Containers, Helm, orchestration, service mesh

298 bites

Test yourself: Top 30 Docker & Kubernetes interview questions →Multiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Everything in Docker & Kubernetes, page 3

advanced1 min read

How do Sealed Secrets enable GitOps for secrets?

Kubeseal encrypts a Secret with the controller's public key into a SealedSecret CR safe for Git; only the in-cluster controller's private key can decrypt it into a real Secret.

advanced1 min read

What do immutable ConfigMaps and Secrets solve?

Setting immutable true blocks data edits, preventing accidental updates and letting the kubelet skip watches, reducing API server load.

advanced1 min read

How do you inject secrets from an external store at runtime?

Use a sidecar injector or CSI driver that authenticates via the Pod's ServiceAccount token, fetches secrets at runtime, and mounts them on tmpfs.

intermediate1 min read

How do you restrict a Pod's access to a Secret?

Pods read Secrets through their ServiceAccount and RBAC, scoped with resourceNames; mounted Secrets are governed by the Pod spec.

intermediate1 min read

How do you let Pods pull from a private registry?

Create a dockerconfigjson Secret with registry creds; reference it via imagePullSecrets on the Pod or ServiceAccount.

intermediate1 min read

Are base64-encoded Kubernetes Secrets actually secure?

Base64 is reversible, not a protection; default guards against accidental shoulder-surfing only; real defenses are encryption-at-rest, RBAC, audit.

intermediate1 min read

Bind mounts versus named volumes

A bind mount maps a host path into the container (great for live source in dev); a named volume is Docker-managed storage decoupled from the host layout (ideal for database data).

intermediate1 min read

Compose image directive versus build directive

Image pulls a prebuilt image from a registry; build builds from a local Dockerfile and context; use build for your own custom application code.

intermediate1 min read

Manage startup order and readiness in Compose

Depends_on only orders start, not readiness; add a healthcheck to the DB and use depends_on with condition: service_healthy so the web app waits until the DB passes its health check.

intermediate1 min read

Docker Compose default networking

Compose creates one default user-defined bridge network for the project; all services join it and reach each other by service name via embedded DNS, isolated from other projects.

easy1 min read

How Compose services reach each other by name

Services share a default network and the web app uses the database's service name as the hostname; Docker's embedded DNS resolves it to the container IP.

easy1 min read

Persist PostgreSQL data across compose down

Define a named volume and mount it at the database's data directory (/var/lib/postgresql/data); named volumes survive compose down.

easy1 min read

Start Compose services detached and view one service's logs

Docker compose up -d starts everything detached; docker compose logs -f web follows only the web service's logs.

advanced1 min read

Distroless images: benefits and trade-offs

Distroless ships only the app and runtime deps, no shell or package manager; smaller and a smaller attack surface than Alpine; trade-off is harder debugging with no shell.

advanced1 min read

Pass build-time secrets securely with BuildKit

Use BuildKit RUN --mount=type=secret (or type=ssh) so the secret is mounted only during that step and never written to a layer; pass it with --secret at build time.

advanced1 min read

Run a container as a non-root user

Create a dedicated group and user, chown app files to them, then USER to drop privileges before the process runs.

intermediate1 min read

What is a dangling image and how to prune it

A dangling image is an untagged layer (<none>:<none>) orphaned when a tag moves to a rebuilt image; list with docker images -f dangling=true, remove with docker image prune.

intermediate1 min read

Debug a running container with the Docker CLI

Docker inspect for full state and config, docker logs -f to follow output live, docker exec -it <id> sh or bash for an interactive shell.

intermediate1 min read

Multi-stage builds for compiled languages

Build in a stage with the full toolchain, then COPY --from only the artifact into a tiny final base, shrinking image size and attack surface.

intermediate1 min read

Optimize Dockerfile layer caching for npm install

Copying all source first invalidates the npm install layer on any code change; instead copy package.json and lockfile, run npm install, then copy the rest.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles