Меню Рубрики

Установка docker compose ubuntu

Install Docker Compose

You can run Compose on macOS, Windows, and 64-bit Linux.

Prerequisites

Docker Compose relies on Docker Engine for any meaningful work, so make sure you have Docker Engine installed either locally or remote, depending on your setup.

On desktop systems like Docker Desktop for Mac and Windows, Docker Compose is included as part of those desktop installs.

On Linux systems, first install the Docker for your OS as described on the Get Docker page, then come back here for instructions on installing Compose on Linux systems.

To run Compose as a non-root user, see Manage Docker as a non-root user.

Install Compose

Follow the instructions below to install Compose on Mac, Windows, Windows Server 2016, or Linux systems, or find out about alternatives like using the pip Python package manager or installing Compose as a container.

The instructions below outline installation of the current stable release (v1.25.4) of Compose. To install a different version of Compose, replace the given release number with the one that you want. Compose releases are also listed and available for direct download on the Compose repository release page on GitHub. To install a pre-release of Compose, refer to the install pre-release builds section.

Install Compose on macOS

Docker Desktop for Mac and Docker Toolbox already include Compose along with other Docker apps, so Mac users do not need to install Compose separately. Docker install instructions for these are here:

Install Compose on Windows desktop systems

Docker Desktop for Windows and Docker Toolbox already include Compose along with other Docker apps, so most Windows users do not need to install Compose separately. Docker install instructions for these are here:

If you are running the Docker daemon and client directly on Microsoft Windows Server, follow the instructions in the Windows Server tab.

Install Compose on Windows Server

Follow these instructions if you are running the Docker daemon and client directly on Microsoft Windows Server with Docker Engine — Enterprise, and want to install Docker Compose.

Start an “elevated” PowerShell (run it as administrator). Search for PowerShell, right-click, and choose Run as administrator. When asked if you want to allow this app to make changes to your device, click Yes.

In PowerShell, since GitHub now requires TLS1.2, run the following:

Then run the following command to download the current stable release of Compose (v1.25.4):

Note: On Windows Server 2019, you can add the Compose executable to $Env:ProgramFiles\Docker . Because this directory is registered in the system PATH , you can run the docker-compose —version command on the subsequent step with no additional configuration.

Install Compose on Linux systems

On Linux, you can download the Docker Compose binary from the Compose repository release page on GitHub. Follow the instructions from the link, which involve running the curl command in your terminal to download the binaries. These step-by-step instructions are also included below.

For alpine , the following dependency packages are needed: py-pip , python-dev , libffi-dev , openssl-dev , gcc , libc-dev , and make .

Run this command to download the current stable release of Docker Compose:

To install a different version of Compose, substitute 1.25.4 with the version of Compose you want to use.

If you have problems installing with curl , see Alternative Install Options tab above.

Apply executable permissions to the binary:

Note: If the command docker-compose fails after installation, check your path. You can also create a symbolic link to /usr/bin or any other directory in your path.

Optionally, install command completion for the bash and zsh shell.

Alternative install options

Install using pip

For alpine , the following dependency packages are needed: py-pip , python-dev , libffi-dev , openssl-dev , gcc , libc-dev , and make .

Compose can be installed from pypi using pip . If you install using pip , we recommend that you use a virtualenv because many operating systems have python system packages that conflict with docker-compose dependencies. See the virtualenv tutorial to get started.

If you are not using virtualenv,

pip version 6.0 or greater is required.

Install as a container

Compose can also be run inside a container, from a small bash script wrapper. To install compose as a container run this command:

Install pre-release builds

If you’re interested in trying out a pre-release build, you can download release cand >curl command in your terminal to download the binaries.

Pre-releases built from the “master” branch are also available for download at https://dl.bintray.com/docker-compose/master/.

Pre-release builds allow you to try out new features before they are released, but may be less stable.

Upgrading

If you’re upgrading from Compose 1.2 or earlier, remove or migrate your existing containers after upgrading Compose. This is because, as of version 1.3, Compose uses Docker labels to keep track of containers, and your containers need to be recreated to add the labels.

Читайте также:  Установка коробки субару легаси

If Compose detects containers that were created without labels, it refuses to run, so that you don’t end up with two sets of them. If you want to keep using your existing containers (for example, because they have data volumes you want to preserve), you can use Compose 1.5.x to migrate them with the following command:

Alternatively, if you’re not worried about keeping them, you can remove them. Compose just creates new ones.

Uninstallation

To uninstall Docker Compose if you installed using curl :

To uninstall Docker Compose if you installed using pip :

Got a “Permission denied” error?

If you get a “Permission denied” error using either of the above methods, you probably do not have the proper permissions to remove docker-compose . To force the removal, prepend sudo to either of the above commands and run again.

источник

Предложение от 8host.com

Установка Docker Compose в Ubuntu 18.04

Docker – очень полезный инструмент, но чтобы использовать его возможности в полной мере, нужно создать отдельный контейнер для каждого компонента приложения. Однако при работе со сложными приложениями, состоящими из большого количества компонентов, управлять контейнерами и синхронизировать их работу – задача довольно непростая.

Сообщество Docker использовало для решения этой проблемы средство под названием Fig, которое позволяет использовать единый YAML-файл для планирования и организации работы контейнеров и конфигураций Docker. Но со временем команда Docker решила разработать собственное средство, основанное на исходном коде Fig. Так появился Docker Compose – инструмент для определения и запуска мультиконтейнерных приложений Docker.

Данный мануал поможет установить Docker Compose.

Требования

  • Сервер Ubuntu 18.04, настроенный по этому мануалу.
  • Предустановленная система Docker (инструкции по установке можно найти здесь).

Примечание: Мануал предназначен для Ubuntu 18.04, однако команда docker работает аналогичным образом и в других дистрибутивах.

1: Установка Docker Compose

Установить Docker Compose можно из официального репозитория Ubuntu, однако тогда вы получите не самую новую версию, потому лучше установить Docker Compose из GitHub-репозитория Docker.

Ссылка в нижеприведённой команде несколько отличается от ссылки, предложенной на странице релизов. Флаг –о позволяет указать файл, в который нужно поместить вывод. Такой синтаксис устраняет ошибки, связанные с конфликтом привилегий при использовании sudo.

Проверьте текущий релиз и при необходимости обновите ссылку в команде.

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Запросите версию программы, чтобы убедиться, что установка прошла успешно:

docker-compose version 1.21.2, build a133471

Инструмент Docker Compose успешно установлен. Теперь можно создать тестовый контейнер для программы Hello World, чтобы проверить работу Docker Compose.

2: Запуск контейнера при помощи Docker Compose

Официальный открытый ресурс Docker, Docker Hub, предлагает образ простого приложения Hello World. Он представляет собой минимальную конфигурацию (YAML-файл), необходимую для запуска контейнера в Docker Compose. Этот образ можно использовать, чтобы протестировать Docker Compose.

Создайте каталог для YAML-файла и перейдите в него:

mkdir hello-world
cd hello-world

Поместите в файл следующий код, затем сохраните и закройте его:

Первая строка будет использоваться как часть имени контейнера. Вторая строка указывает, какой образ использовать для создания контейнера. Команда docker-compose up будет искать в локальных образах образ hello-world.

Список локальных образов можно просмотреть вручную:

Если локальных образов нет, команда вернёт только заголовки столбцов:

REPOSITORY TAG IMAGE ID CREATED SIZE

/hello-world выполните следующую команду, чтобы создать контейнер:

Если при первом запуске команда не обнаружит нужного образа на локальной машине, образ будет загружен из официального репозитория Docker Hub.

Pulling my-test (hello-world:latest).
latest: Pulling from library/hello-world
c04b14da8d14: Downloading [==================================================>] c04b14da8d14: Extracting [==================================================>] c04b14da8d14: Extracting [==================================================>] c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
. . .

Загрузив образ, docker-compose создаст контейнер и запустит программу hello-world. Если всё выполнено верно, на экране появится такой вывод:

. . .
Creating helloworld_my-test_1.
Attaching to helloworld_my-test_1
my-test_1 |
my-test_1 | Hello from Docker.
my-test_1 | This message shows that your installation appears to be working correctly.
my-test_1 |
. . .

Затем команда выведет описание своих действий:

1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the «hello-world» image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

  • Клиент Docker подключается к демону Docker.
  • Демон загружает образ hello-world с Docker Hub.
  • Демон создаёт из этого образа новый контейнер.
  • Демон передаёт полученный вывод клиенту Docker, а он возвращает его в терминал.
Читайте также:  Установка задней машинки на велосипед

Контейнер Docker работает до тех пор, пока работает программа, запущенная в нём. Если вы остановите программу hello, контейнер тоже остановится. Запросите список активных контейнеров; программы hello-world среди них не будет.

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Чтобы просмотреть все существующие контейнеры, используйте флаг –а:

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

06069fd5ca23 hello-world «/hello» 35 minutes ago Exited (0) 35 minutes ago drunk_payne

3: Удаление образа (опционально)

Чтобы не тратить дисковое пространство, можно удалить локальный образ. Для этого нужно удалить все связанные с ним контейнеры с помощью команды docker rm; при этом нужно указать имя или ID контейнера (его можно найти в выводе docker ps –a).

Когда все контейнеры, связанные с образом, будут удалены, вы сможете удалить и сам образ:

Заключение

Теперь вы умеете устанавливать Docker Compose и управлять контейнерами с помощью этого инструмента.

Данное руководство охватывает только основы работы с Docker Compose. К сожалению, оно не рассматривает одну из самых важных функций Docker Compose – управление группами контейнеров.

источник

Предложение от 8host.com

Установка и использование Docker Compose на Ubuntu 14.04

Docker – очень полезный инструмент, но чтобы использовать его возможности в полной мере, нужно создать отдельный контейнер для каждого компонента приложения. Однако при работе со сложными приложениями, состоящими из большого количества компонентов, управлять контейнерами и синхронизировать их работу – довольно трудная задача.

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

Общие понятия Docker и Docker Compose

Прежде чем приступить к работе с Docker Compose, нужно ознакомиться с основными понятиями Docker.

Образы Docker

По сути, каждый контейнер является образом Docker. Образ проще представить в виде готовой установки Linux. Как правило, простая установка содержит минимальное количество пакетов, необходимое для запуска образа. Образы используют ядро хост-системы, но, будучи запущенными в контейнерах Docker, они видят только свою файловую систему, что позволяет, к примеру, запустить контейнер с дистрибутивом CentOS в системе Ubuntu и наоборот.

Большинство контейнеров Docker распространяется при помощи ресурса Docker Hub, который поддерживается командой разработчиков проекта. Наиболее популярные проекты с открытым исходным кодом имеют свой образ, загруженный в Docker Registry, который можно использовать для развёртывания программного обеспечения. По возможности лучше использовать «официальные» образы, подтверждённые командой Docker.

Взаимодействие между образами Docker

По умолчанию контейнеры Docker изолированы от главной машины, следовательно, главная машина не имеет доступа к файловой системе в контейнере, а также никаких средств взаимодействия с ней через сеть.

Для решения этой проблемы Docker предлагает три основных способа. Первый и наиболее распространенный способ — указать переменные среды Docker внутри контейнера. Код, запущенный внутри контейнера, будет проверять значения этих переменных среды при загрузке и использовать их для соответствующей настройки.

Следующий метод – использование томов данных Docker. Тома Docker бывают двух видов – внутренние и общие. По умолчанию после перезагрузки или отключения контейнера данные будут потеряны; контейнер, по сути, возвращается в состояние, в котором он находился до запуска. Это удобно при тестировании или разработке (поскольку обеспечивает одинаковую среду при каждом новом запуске контейнера), однако совсем не подходит для среды производства (поскольку после перезапуска весь добавленный контент будет потерян). Внутренний том Docker позволяет сохранять данные определённой папки отдельного контейнера Docker. Например, чтобы сохранить содержимое лог-файлов после перезагрузки, можно создать внутренний том для /var/log.

Общий том отображает папку контейнера Docker в папке на хост-компьютере. Это позволяет легко обмениваться файлами между контейнером и главной машиной.

Взаимодействие между различными контейнерами Docker обеспечивается при помощи ссылок, а также путём перенаправления портов, что позволяет направить порты из контейнера Docker к портам на хост-сервере. К примеру, можно создать ссылку, чтобы настроить взаимодействие контейнеров WordPress и MariaDB, и использовать перенаправление порта, чтобы позволить WordPress взаимодействовать с внешним миром, чтобы пользователи могли подключиться к нему.

Требования

Для выполнения руководства понадобится:

  • Сервер Ubuntu 14.04
  • Не-root пользователь с доступом к sudo (подробнее об этом – в руководстве по начальной настройке сервера).
Читайте также:  Установка гипсовых межкомнатных перегородок

1: Установка Docker

Установите Docker, если ранее он не был установлен.

Проще всего это сделать при помощи установочного скрипта; загрузите и установите его (будет запрошен пароль sudo):

wget -qO- https://get.docker.com/ | sh

Эта команда загрузит и выполнит скрипт, написанный командой Docker.

Для работы с Docker пользователя нужно настроить соответствующим образом. Добавьте пользователя в группу docker.

sudo usermod -aG docker $(whoami)

2: Установка Docker Compose

После установки Docker можно приступать к установке Docker Compose. Для начала установите python-pip:

sudo apt-get -y install python-pip

Затем установите Docker Compose:

sudo pip install docker-compose

3: Запуск контейнера при помощи Docker Compose

Официальный открытый ресурс Docker, Docker Hub, предлагает образ простого приложения Hello World. Можно использовать его, чтобы протестировать Docker Compose.

Создайте каталог для YAML-файла:

Создайте YAML-файл при помощи текстового редактора:

Поместите в файл следующий контент, затем сохраните и закройте его:

Первая строка будет использоваться как часть имени контейнера. Вторая строка указывает, какой образ использовать для создания контейнера. Образ будет загружен из официального репозитория Docker Hub.

/hello-world выполните следующую команду, чтобы создать контейнер:

На экране должен появиться примерно такой вывод:

Creating helloworld_my-test_1.
Attaching to helloworld_my-test_1
my-test_1 |
my-test_1 | Hello from Docker.
my-test_1 | This message shows that your installation appears to be working correctly.
my-test_1 |

Вывод описывает действия Docker:

  • Клиент Docker подключается к демону Docker.
  • Демон загружает образ hello-world с Docker Hub.
  • Демон создаёт из этого образа новый контейнер.
  • Демон передаёт полученный вывод клиенту Docker, а он возвращает его в терминал.

Процесс не завершается самостоятельно, нажмите CTRL-C.

4: Команды Docker Compose

Рассмотрим команды, которые поддерживает Docker Compose.

Команда docker-compose работает на уровне каталога. На одной машине можно иметь несколько групп контейнеров; для этого нужно создать отдельный каталог и отдельный файл docker-compose.yml для каждого контейнера.

Вы уже запускали команду docker-compose up и остановили процесс при помощи комбинации CTRL-C. Это выводит в окно терминала отладочные сообщения. Однако в среде производства инструмент docker-compose должен работать как сервис. Для этого достаточно добавить опцию –d:

Эта команда запускает docker-compose в фоновом режиме.

Чтобы просмотреть группу контейнеров Docker (и запущенных, и отключенных), используйте следующую команду:

К примеру, вывод может иметь такой вид (этот вывод сообщает, что контейнер helloworld_my-test_1 отключен):

Name Command State Ports
————————————————
helloworld_my-test_1 /hello Exit 0

Состояние запущенных контейнеров – Up:

Name Command State Ports
—————————————————————
nginx_nginx_1 nginx -g daemon off; Up 443/tcp, 80/tcp

Чтобы остановить все контейнеры Docker в группе конкретного приложения, выполните следующую команду в каталоге, в котором находится файл docker-compose.yml, при помощи которого был запущена группа Docker:

Примечание: Также можно использовать команду docker-compose kill.

Иногда Docker хранит устаревшую информацию во внутреннем томе. Чтобы вернуть среду в её исходное состояние, нужно использовать команду rm, которая удаляет все контейнеры, созданные группой:

Если запустить эту команду в другом каталоге (не в том, в котором хранится контейнер Docker и yml-файл), команда вернёт ошибку:

Can’t find a suitable configuration file in this directory or any parent. Are you in the right directory?
Supported filenames: docker-compose.yml, docker-compose.yaml, fig.yml, fig.yaml

5: Работа с файловой системой контейнера Docker (опционально)

Если вам нужно взаимодействовать с файловой системой контейнера при помощи командной строки, используйте команду docker exec.

Образец контейнера Hello World закрывается после запуска, потому нужно запустить новый контейнер, чтобы протестировать работу команды docker exec. Для примера можно использовать образ Nginx с Docker Hub.

Создайте новый каталог и откройте его

Создайте файл docker-compose.yml:

Вставьте в него следующий код:

Сохраните и закройте файл. Теперь нужно запустить контейнер Nginx как фоновый процесс:

Образ Nginx будет загружен, контейнер запустится в фоновом режиме.

После этого нужно узнать CONTAINER ID данного контейнера. Список запущенных контейнеров можно просмотреть при помощи команды:

На экране появится примерно такой вывод:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e90e12f70418 nginx «nginx -g ‘daemon off» 6 minutes ago Up 5 minutes 80/tcp, 443/tcp nginx_nginx_1

Примечание: Эта команда выводит только запущенные контейнеры.

Чтобы внести изменения в файловую систему контейнера, используйте ID — контейнера (в данном случае это e90e12f70418) и команду docker exec. Это запустит оболочку в контейнере.

docker exec -it e90e12f70418 /bin/bash

Опция –t открывает терминал, а опция –i запускает интерактивный режим. Опция /bin/bash открывает оболочку bash для запущенного контейнера.

Теперь можно взаимодействовать с контейнером из командной строки.

Имейте в виду: все изменения будут утеряны, как только контейнер перезапустится, если каталог не входит в том данных. Кроме того, нужно помнить, что большинство контейнеров создаются как минимальные установки Linux, потому некоторые команды и утилиты в них недоступны.

Заключение

Данное руководство охватывает только основы работы с Docker Compose.

источник

Добавить комментарий

Adblock
detector