Po dokončení instalace Dockeru byste měli mít nové okno, které vás provede prvními kroky vytváření obrázků a kontejnerů pomocí Dockeru:
Jedná se o zajímavý způsob, jak si rychle stáhnout svůj první obrázek a spustit jej jako kontejner.
Příkazy můžete spouštět v terminálu na pravé straně vestavěné do této aplikace, ale já ji raději spouštím ve svém vlastním prostředí.
Otevřu macOS Terminal, spustím cd dev
přejít do mého domova dev
a vytvořím docker
podadresář, kde budu hostit všechny experimenty Docker. Spouštím cd docker
jít do toho, pak běžím
git clone https://github.com/docker/getting-started
Tento příkaz vytvořil nový getting-started
složka s obsahem úložiště https://github.com/docker/getting-started :
Nyní z této složky spusťte příkaz docker build
tímto způsobem:
docker build -t docker101tutorial .
Toto vytvoří obrázek z obsahu aktuální složky, ve které se nacházíte, s názvem značky docker101tutorial
.
Toto je 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
Jak můžete vidět, nevytváří náš obrázek pouze z jednoho, ale ze 3 základních obrázků:python:alpine
, node:12-alpine
a nginx:alpine
.
Když spustíte docker build -t docker101tutorial .
, začne stažením prvního základního obrázku:
Poté spustí všechny příkazy, které jsme definovali v Dockerfile.
Pokračuje, dokud nedosáhneme konce:
Nyní máme obrázek docker101tutorial
a na základě tohoto obrázku můžeme spustit kontejner.
Spusťte příkaz docker run
s těmito atributy:
docker run -d -p 80:80 --name docker-tutorial docker101tutorial
Používáme volbu -d
ke spuštění kontejneru na pozadí a vytištění ID kontejneru. Pokud tento příznak přehlédnete, nevrátíte se okamžitě zpět do prostředí, dokud kontejner neukončí (ale pokud je dlouhodobý, například provozuje službu, jako je aplikace Node nebo tak něco, automaticky se neukončí).
-p
volba se používá k mapování portu 80 kontejneru na port hostitelského počítače 80. Kontejner zpřístupňuje webový server na portu 80 a my můžeme mapovat porty na našem počítači na porty vystavené kontejnerem.
--name
přiřadí název kontejneru a nakonec máme název obrázku (docker101tutorial
) bychom měli použít k vytvoření kontejneru.
Pokud máte nějaké pochybnosti o možnosti příkazu, spusťte docker <command> --help
, v tomto případě docker run --help
a dostanete velmi podrobné vysvětlení:
Tento příkaz je velmi rychlý a získáte zpět ID kontejneru: