Premiers pas avec Docker après l'installation

Après avoir terminé leInstallation de Dockervous devriez avoir une nouvelle fenêtre qui vous guidera à travers les premières étapes de la créationimagesetconteneursavec Docker:

C'est un moyen intéressant de vous familiariser avec le téléchargement de votre première image et son exécution en tant que conteneur.

Vous pouvez exécuter les commandes du terminal à droite intégrées à cette application, mais je préfère l'exécuter dans mon propre shell.

J'ouvre le terminal macOS, lancezcd devrentrer chez moidevdossier, et je crée undockersous-répertoire, où je vais héberger toutes les expériences Docker. je courscd dockerpour y entrer, puis je cours

git clone https://github.com/docker/getting-started

Cette commande a créé un nouveaugetting-starteddossier avec le contenu du référentielhttps://github.com/docker/getting-started:

Maintenant, à partir de ce dossier, exécutez la commandedocker buildde cette façon:

docker build -t docker101tutorial .

Cela va créer l'image à partir du contenu du dossier actuel dans lequel vous vous trouvez, avec le nom de la balisedocker101tutorial.

Ceci est le 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

Comme vous pouvez le voir, cela crée notre image à partir non seulement d'une, mais de 3 images de base:python:alpine,node:12-alpineetnginx:alpine.

Quand tu coursdocker build -t docker101tutorial ., il commencera par télécharger la première image de base:

Ensuite, il exécutera toutes les commandes que nous avons définies dans le Dockerfile.

Cela continue jusqu'à ce que nous arrivions à la fin:

Maintenant nous avons l'imagedocker101tutorialet nous pouvons exécuter un conteneur basé sur cette image.

Exécutez la commandedocker runavec ces attributs:

docker run -d -p 80:80 --name docker-tutorial docker101tutorial

We’re using the option -d to run the container in background and print the container ID. If you miss this flag, you will not immediately get back to the shell until the container exits (but if it’s long-lived, for example it runs a service like a Node app or something, it will not exit automatically).

The -p option is used to map port 80 of the container to the host machine port 80. The container exposes a Web server on port 80, and we can map ports on our computer to ports exposed by the container.

--name assigns a name to the container, and finally we have the image name (docker101tutorial) we should use to create the container.

If you have any doubt about a command option, run docker <command> --help, in this case docker run --help and you’ll get a very detailed explanation:

This command is very fast and you’ll get the container ID back:


More docker tutorials: