Docker — это инструмент, который разработчики используют для разработки их приложений в контролируемой среде. Подумайте об этом как об индивидуальной виртуальной среде, предназначенной для размещения вашего приложения и его потребности. Этот подход обеспечивает работу приложений постоянно на любую заданную компьютерную среду при работе с другими разработчиками. Он также макирует техническое обслуживание гораздо проще из-за способности модулировать свои компоненты приложения (Backend, Frontend, базу данных и т. Д.) В их собственную виртуальную среду.
Это руководство кратко обзоре различные фрагменты экосистемы докера.
Dockerfile содержит инструкции о том, как создать вашу виртуальную среду и как начать свое приложение внутри него. Вот образец с аннотациями:
# The following specifies the base layer on which to build our Dockerfile. # This is generally the environment we want to start off with. # The line below tells us we want our application to be in a debian # linux environment with ruby 2.6.5 installed and configured. # The base layer is written in the following format: #: # - IMAGE_NAME: Usually the environment (ruby, node, postgres, etc.) # - IMAGE_TAG: Usually the version (2.6.5, 2.6.5-ubuntu, etc.) FROM ruby:2.6.5-debian # RUN tells us to execute a command within our environment. # The line below will install some packages our application will need. # The `\` character says to continue the command on the next line. # Use it to make your code easier to read. RUN apt-get update -qq && \ apt-get install -y build-essential libpq-dev nodejs # Similar to `cd`, the WORKDIR command changes our directory # within our environment for the remainder of the Dockerfile. # WORKDIR will also create the directory for us if it does not exist. # It is generally a good idea to work straight from # the root (`/`) directory rather than home (`~`). WORKDIR /app # The COPY command copies the first item to the second item # just like the `cp` command would. # The difference between `cp` and COPY is that the second argument # here should point to a location within our virtual environment. # The line below copies our Gemfile, a file which describes # the list of packages our ruby app is dependant on, # into our docker environment. COPY Gemfile ./ # bundle reads the Gemfile we passed into our virtual environment # and installs our dependencies. # Note that there is no special difference in running `bundle install` # on your local machine versus here in a virtual environment. RUN bundle install # This line copies everything in our # current directory on our machine (.) # into our current working directory # within the virtual environment (the second .) COPY . . # Exposes the port 3000 within our virtual linux environment to our local machine. # We can then call on this port to communicate with our app # within this virtual environment as long as our code is # also configured to listen on this port number. EXPOSE 3000 # The CMD command is very similar to RUN insofar that it runs arguments. # The difference is that CMD is considered our final instruction to the Dockerfile. # Whereas RUN is used to run arguments necessary to build our app, # CMD is used by docker when we tell it to fire up our environment. # As such, CMD will generally run your server, start your database, etc. # The line below starts rails, which is a type of backend server CMD rails s
Как только у вас есть Dockerfile
Вы можете просто запустить Докерный путь сборки
построить его, где Путь
это корневой каталог вашего приложения. Обратите внимание, что Путь
Должен также содержать ваш Dockerfile
. Если вы поместите его в отдельный каталог, используйте -f
Вариант: Docker Build Path -f Dockerfile_Path
Отказ
Строительство Dockerfile
приводит к созданию образа докера. Чтобы лучше понять это, подумайте, как, когда вы программируете, ваш код может быть в читаемом человеке, например Code.js.
. Однако, когда вы компилируете его, компилятор преобразует его в новый файл с инструкциями, которые могут понять ваш компьютер. Dockerfiles и Docker Images аналогичны. Вы пишете свои инструкции в Dockerfile
, а затем Docker создаст изображение из него, которое сообщает Docker Service, что делать при запуске приложения в его среде.
НАКОНЕЧНИК: Используйте -t Имя: тег
Флаг, чтобы дать вашему изображению пользовательское имя и тег. Тег предназначен для того, чтобы рассказать reader вашу версию или состояние вашего приложения. Возможные значения могут быть 1.0.0
, Развитие
или Последние
(Указание продукта уровня производства).
НАКОНЕЧНИК: Использовать Docker Image Ls.
Чтобы перечислить все изображения Docker на вашем компьютере.
После того, как ваш докер построен, Docker может использовать его, чтобы наконец-то выстрелить вашу виртуальную среду, которая также известна как контейнер докера. Когда вы достигаете этого этапа, вы можете рассказать своим друзьям, что ваше приложение — Контейнеризованные или докеренные Отказ
НАКОНЕЧНИК: Беги Docker PS
Чтобы показать все контейнеры, которые в настоящее время работают на вашем компьютере. Используйте -
Флаг, чтобы переписать все контейнеры, когда-либо выпущенные.
НАКОНЕЧНИК: Использовать Docker Stop Container_name_or_id
Чтобы остановить данный контейнер, используя его полное имя Имя: тег
или ID
Отказ Вы также можете использовать Docker Kill Container_name_or_id
остановить контейнер свободным.
НАКОНЕЧНИК: Использовать Docker RM Container_name_or_id.
полностью удалить контейнер. Не волнуйтесь, вы всегда можете создать его снова, используя свой образ докера. Ваши данные будут * Не Будьте удалены, так как он хранится в томе докера (который является SeaPrate от вашего изображения и контейнера).
Объемы докера — это средство сохранения ваших контейнеров. В случае вероятности того, что вы перезагрузите или удалите контейнер, тома докера гарантирует, что данные, захваченные внутри ваших контейнеров, пока она работала не теряется. Объемные тома — это магазины на вашей локальной файловой системе. Эта функциональность может контролироваться в зависимости от типа тома докера, который вы выбираете для реализации. Есть Три основных варианта :
- Объем хоста: Создает однозначное отображение данных между локальным каталогом, которое вы указываете и каталог контейнера. Это полезно для проектов программирования, поскольку вы можете отредактировать свой код локально и динамически обновляться в вашем контейнере.
- Анонимный том: Вы определяете, какой путь внутри вашего контейнера вы хотите сохранить, и двигатель Docker находит место в вашей файловой системе, чтобы сохранить эти данные для вас.
- Объем по имени: Та же функциональность, что и анонимные тома, но вы можете назвать их.
Поскольку автоматизация является такому присущему желанию в разработчиках программного обеспечения США, сообщество Docker создало средство для автоматизации процесса построения и запущенных докенфилов в одну утилиту, называемую Docker-Compose
Отказ Docker-Compose файлы написаны в Ямл
Формат файла и опишите различные инструкции по строительству, такие как какие контейнеры для создания, которые Dockerfile
Использовать, какие тома для создания и так далее.
Оригинал: «https://dev.to/mohmankoo/brief-docker-introduction-4k54»