Рубрики
Uncategorized

Как использовать Docker-Compose, тома, сети и более

Фото Philippe Outerse Os Uspplash Мои скромные усилия для упрощения докеровской части III … Теги с DevOps, Docker, Development Software, Docker Compose.

фото Филипп Осел на Бессмысленно

Мои скромные усилия Чтобы упростить докер часть III

Решение «Это работает на моей машине» синдром

Это последний пост в SimPlify Docker Series (если вы еще не читали предыдущие, продолжайте и прочитайте их, это сделает больше смысла позже — Часть I & Часть II ). На этот раз я буду покрывать сети, докер-составляющие, тома докера и многое другое.

Что это за все с помощью Docker-Compose?

Docker-Compose позволяет вам определить и запустить многофункциональные приложения Docker. С помощью Compose вы настраиваете службы вашего приложения, используя файлы YAML (здесь больше на YAML). После этого вы можете начать все услуги, которые ваша конфигурация создана только с одной командой.

В следующем примере от TechWorld с Наной Gitlab. Кстати, канал YouTube Нана настоятельно рекомендуется. Ниже приведен урок ее докера:

В приведенном ниже примере мы хотели бы запустить контейнер MongoDB вместе с контейнером Mongo-Express. Как мы видели на предыдущих постах, (дольше) способ сделать это:

docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password --name mongodb mongo

docker run -d -p 8081:8081 -e ME_CONFIG_MONGODB_ADMINUSERNAME=admin -e ME_CONFIG_MONGODB_ADMINPASSWORD=password -e ME_CONFIG_MONGODB_SERVER=mongodb --name mongo-express mongo-express

Эквивалентная версия YAML Compose является более чистым и читаемым:

version: '3'
services:
  mongodb:
    image: mongo
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=password
  mongo-express:
    image: mongo-express
    ports:
      - 8080:8081
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=admin
      - ME_CONFIG_MONGODB_ADMINPASSWORD=password
      - ME_CONFIG_MONGODB_SERVER=mongodb

Чтобы использовать, просто запустите: Docker-Compose -f filename.yaml Up , удалить его, замените аргумент с помощью вниз.

Повернуть громкость

https://medium.com/media/c461c2386ead3ec2b5ef9f5f2472e58b/href

Каждый Docker имеет разную файловую систему, отделенную от среды хостинга. Как мы ранее увидели, при выходе из контейнера большинство его файлов удаляются (если только вы не используете команду commit command). Итак, вы можете использовать тома для сохранения файлов или указать файлы в локальной системе, которые будут использоваться в контейнере. Для этого вам нужно подключиться между оба системами файлов следующим образом:

docker run -v /path/in/host:/path/in/container -it image_name

Вышеуказанная команда будет запустить контейнер, который/path/in/contains сопоставлен на/path/in/host в наших локальных файловых системах. Другим вариантом является использование уникального именованного тома, где Docker устанавливает местоположение локальной файловой системы, и пользователь устанавливает местоположение в контейнере следующим образом:

docker run -v name:/path/in/container -it image_name

Чтобы получить информацию о именованном объеме, мы можем использовать команду Docker Volume осматривает громкость \ _name А для удаления это делается: Docker Volume RM Volume \ _Name Отказ Прямое последующее наблюдение — как скопировать и из контейнера (команда копирования, которую мы увидели ранее, не является ответом, она только копирует на изображение, а не под управлением контейнера). Приведенная ниже команда используется для копирования в контейнер:

docker cp  :

* container - the ID or name of the container 

Где следующее используется для копирования из контейнера:

docker cp : 

* container - the ID or name of the container

Быть связанным

Общаться друг с другом- Src.

Еще одна важная концепция — это сети; Вы можете создать изолированную сеть для нескольких контейнеров. По умолчанию Docker создает один для каждого запуска Docker. Тем не менее, в некоторых ситуациях вы хотели бы назвать его и установить ту же сеть для более чем контейнера; Таким образом, они смогут общаться друг с другом.

Чтобы увидеть все созданные сети, запустив команду:

docker network ls

Чтобы создать сеть:

docker network create network_name

И, наконец, чтобы выстрелить контейнер с этой сетью:

docker run --net network_name -it image_name

Другая полезная команда — запускать контейнер на основе другой сети контейнера для включения связи между двумя, просто пропустите идентификатор контейнера или имени на флаг — нетто. Мы видели, как контейнеры до сих пор общаются друг с другом, но что, если вы хотите делиться данными из внешнего источника? Для этого мы определим внутренние порты, к которым слушает контейнер. В Docker Run -P 5050: 80 image \ _name команда Он определяет, что порт 5050 системы 5050 хостинга связан с портом 80 контейнера.

Docker Размер изображения Диета

Уменьшить размер изображения — Src.

Размер изображения докера может быстро наполнить до 2,5 и даже 15 ГБ. Лучшая практика — снизить его на пару причин:

  • Меньший размер означает легче перемещаться с места на место
  • Меньше места на локальной файловой системе
  • Обычно изображения хранятся в облачной репозитории. То есть меньший их размер, нижний это стоит
  • Безопасность — Установите только то, что вам нужно

Итак, как вы можете сделать размер образца?

  • Многоступенчатая состоит из нескольких изображений («от») на одном и том же DockerFile и определите, какой из них опирается на команду сборки. Для этого настоятельно рекомендуется назвать каждый слой (с помощью команды «как« как »), а затем выберите, какой слой для создания использования: Docker Build — -T Container_Name.
  • Основывайте изображения на изображениях меньшего размера. Вы можете использовать распределение, такое как альпийский Linux или Google’s отмерщика Отказ

Image следователь

Последняя вещь, прежде чем упаковать это руководство, я хотел бы порекомендовать утилиту с открытым исходным кодом с именем Нырять Отказ Среди его многочисленных особенностей вы можете исследовать контент каждого уровня, размеры файлов и многое другое. По сути, это поможет вам анализировать образы докера. В конце концов, предоставляя достаточно информации, чтобы подумать о способах уменьшения размеров изображений.

Заключить

Этот пост и предыдущие — это только верхушка айсберга того, что может сделать докер. Я надеюсь, что я достаточно упростил его, и если вы сделали это далеко, вы должны иметь основные навыки для начала.

Наслаждаться!

Если вам понравилось …

Оригинал: «https://dev.to/dejavo/how-to-use-docker-compose-volumes-networks-and-more-4a24»