Dopo aver completato l'installazione di Docker dovresti avere una nuova finestra che ti guiderà attraverso i primi passaggi della creazione di immagini e contenitori con Docker:

Questo è un modo interessante per aggiornarti sul download della tua prima immagine ed eseguirla come contenitore.

Puoi eseguire i comandi nel terminale a destra integrato in questa app, ma preferisco eseguirlo nella mia shell.
Apro il terminale macOS, eseguo cd dev per entrare nella mia casa dev cartella e creo una docker sottodirectory, dove ospiterò tutti gli esperimenti Docker. Eseguo cd docker per entrarci, poi corro
git clone https://github.com/docker/getting-started
Questo comando ha creato un nuovo getting-started cartella con il contenuto del repository https://github.com/docker/getting-started :

Ora da questa cartella, esegui il comando docker build in questo modo:
docker build -t docker101tutorial .
Questo costruirà l'immagine dal contenuto della cartella corrente in cui ti trovi, con il nome del tag docker101tutorial .
Questo è il Dockerfile
*# Install the base requirements for the app.*
*# This stage is to support development.*
FROM python:alpine AS base
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
*# Run tests to validate app*
FROM node:12-alpine AS app-base
WORKDIR /app
COPY app/package.json app/yarn.lock ./
RUN yarn install
COPY app/spec ./spec
COPY app/src ./src
RUN yarn test
*# Clear out the node_modules and create the zip*
FROM app-base AS app-zip-creator
RUN rm -rf node_modules && \
apk add zip && \
zip -r /app.zip /app
*# Dev-ready container - actual files will be mounted in*
FROM base AS dev
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
*# Do the actual build of the mkdocs site*
FROM base AS build
COPY . .
RUN mkdocs build
*# Extract the static content from the build*
*# and use a nginx image to serve the content*
FROM nginx:alpine
COPY --from=app-zip-creator /app.zip /usr/share/nginx/html/assets/app.zip
COPY --from=build /app/site /usr/share/nginx/html
Come puoi vedere, crea la nostra immagine non solo da una, ma da 3 immagini di base:python:alpine , node:12-alpine e nginx:alpine .
Quando esegui docker build -t docker101tutorial . , inizierà scaricando la prima immagine di base:

Quindi eseguirà tutti i comandi che abbiamo definito nel Dockerfile.

Continua fino alla fine:

Ora abbiamo l'immagine docker101tutorial e possiamo eseguire un container basato su questa immagine.
Esegui il comando docker run con quegli attributi:
docker run -d -p 80:80 --name docker-tutorial docker101tutorial
Stiamo usando l'opzione -d per eseguire il contenitore in background e stampare l'ID contenitore. Se manchi questo flag, non tornerai immediatamente alla shell fino all'uscita del contenitore (ma se è di lunga durata, ad esempio esegue un servizio come un'app Node o qualcosa del genere, non uscirà automaticamente).
Il -p l'opzione viene utilizzata per mappare la porta 80 del contenitore alla porta 80 della macchina host. Il contenitore espone un server Web sulla porta 80 e possiamo mappare le porte del nostro computer alle porte esposte dal contenitore.
--name assegna un nome al contenitore e infine abbiamo il nome dell'immagine (docker101tutorial ) dovremmo usare per creare il contenitore.
In caso di dubbi su un'opzione di comando, eseguire docker <command> --help , in questo caso docker run --help e riceverai una spiegazione molto dettagliata:

Questo comando è molto veloce e riavrai l'ID del contenitore:
