docker

Dockerfile alias Пример создания псевдонима команды терминала

Для интеркативных шеллов (в ubuntu по умолчанию именно такой), достаточно определить псевдоним как обычно поправим файл ~/.bashrc, все это обернув в вызов докера RUN:

RUN echo 'alias hi="привет, это псевдоним!"' >> ~/.bashrc

netbeans xdebug docker Настройка отладки (ubuntu linux)

Рассмотрим ситуацию, когда приложение с php запущено внутри контейнера и нам нужно отлаживать его через xdebug (инструкция проверялась для php7.4 и Netbeans11.2)

yaml.scanner.ScannerError: while scanning for the next token found character '\t' that cannot start any token Ошибка

ERROR: yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
in "./docker-compose.yml", line 47, column 1

Используйте для форматирования пробелы вместо табов.

docker ip Адрес хостовой машины - как получить

Можно так:

/sbin/ip route|awk '/default/ { print $3 }'

где:

docker linux host IP хоста (Основной операционной системы), как обращаться к службам "снаружи"

Используем сеть по умолчанию (минимализм)

Cпециальное внутреннее доменное имя host.docker.internal что обращаться к основной системе (хосту) из контейра (гостевой системы) не работает в Linux (как минимум в docker 19)

Явное указание IP

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

docker Запросы выполняются медленнее чем без докера

Проблема

После переезда в докер запросы стали выполняться очень долго (минимум по 3 секунды лишних на каждый вопрос). При этом докер запускался в ubuntu linux, где накладные расходны на сам докер должны быть минимальными.

Что оказалось

Оказалось, что проблема была в том, что в сборке использовалась конфигурация xdebug (в конфиге ниже это файл config/php/xdebug.ini) в которой было включен автозапуск (xdebug.remote_autostart=1), чтобы исправить ситуацию переключили на 0:

docker compose По-русски. Основные команды, пример

Стандартная документация по командам терминала:

В той же папке, где лежит файл манифеста docker-compose.yml:

docker Узнать имя и/или ID контейнера (+ docker-compose)

Есть разные способы

docker Имена и id контейнеров

Используя основную команду докера можно глянуть запущенные процессы:

docker ps 

Или все когда-либо запускавшиеся:

docker ps -a

docker-compose Имена контейнеров

Перейдите в папку с манифестом docker-compose.yml и выполните команду:

docker-compose ps

docker Как подключиться к терминалу контейнера

Через bash

Для подключения к контейнеру в терминале:

docker exec -it имяИлиIdконтейнера bash

Чтобы узнать имя контейнера или id используйте команду докера или докер-композа для имени.

Через shell

Если bash не установлен, то пробуем shell:

docker exec -it имяИлиIdконтейнера sh

debconf: delaying package configuration, since apt-utils is not installed ubunutu 18

debconf: delaying package configuration, since apt-utils is not installed ubunutu 18

и ошибка

debconf: unable to initialize frontend: Dialog

Была попытка решить установкой этих пакетов в начале:

ARG NOCACHE=0
RUN apt-get update
ARG NOCACHE=1

RUN apt-get install -y --no-install-recommends  apt-utils dialog
RUN apt-get install -y software-properties-common

Pages

Subscribe to RSS - docker