/ bin / bash: npm: команда не найдена (docker-контейнер)

Шаг 8 — Загрузка образов Docker в репозиторий Docker

Следующим логическим шагом после создания нового образа из существующего является предоставление доступа к этому образу нескольким вашим друзьям или всему миру на Docker Hub или в другом реестре Docker, к которому вы имели доступ. Чтобы добавить образ на Docker Hub или любой другой реестр Docker, у вас должна быть там учетная запись.

Данный раздел посвящен добавлению образа Docker на Docker Hub. Чтобы узнать, как создать свой собственный частный реестр Docker, ознакомьтесь со статьей Настройка частного реестра Docker на Ubuntu 14.04.

Чтобы загрузить свой образ, выполните вход в Docker Hub.

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

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

Затем вы можете загрузить свой образ с помощью следующей команды:

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

Данный процесс может занять некоторое время, необходимое на загрузку образов, но после завершения вывод будет выглядеть следующим образом:

После добавления образа в реестр он должен отображаться в панели вашей учетной записи, как на изображении ниже.

Если при попытке добавления возникает подобная ошибка, вы, скорее всего, не выполнили вход:

Выполните вход с помощью команды и повторите попытку загрузки. Проверьте, появился ли образ на вашей странице репозитория Docker Hub.

Теперь вы можете использовать , чтобы загрузить образ на новый компьютер и использовать его для запуска нового контейнера.

Утилита Docker

Все действия с контейнерами выполняются утилитой docker. Ее можно запускать от имени вашего пользователя после того, как он был добавлен в группу программы. Синтаксис утилиты очень прост:

$ docker опции команда опции_команды аргументы

Давайте сначала рассмотрим основные опции утилиты их всего несколько:

  • -D — включить режим отладки;
  • -H — подключиться к серверу, запущенному на другом компьютере;
  • -l — изменить уровень ведения логов, доступно: debug,info,warn,error,fatal;
  • -v — показать версию;
  • —help вывести справку по команде или утилите в целом;

Команд намного больше, ниже приведены все команды, которые вы можете использовать в своих программах:

  • attach — подключиться к запущенному контейнеру;
  • build — собрать образ из инструкций dockerfile;
  • commit — создать новый образ из изменений контейнера;
  • cp — копировать файлы между контейнером и файловой системой;
  • create — создать новый контейнер;
  • diff — проверить файловую систему контейнера;
  • events — посмотреть события от контейнера;
  • exec — выполнить команду в контейнере;
  • export — извлечь содержимое контейнера в архив;
  • history — посмотреть историю изменений образа;
  • images — список установленных образов;
  • import — создать контейнер из архива tar;
  • info — посмотреть информацию о системе;
  • inspect — посмотреть информацию о контейнере;
  • kill — остановить запущенный контейнер;
  • load — загрузить образ из архива;
  • login — авторизация в официальном репозитории Docker;
  • logout — выйти из репозитория Docker;
  • logs — посмотреть логи контейнера;
  • pause — приостановить все процессы контейнера;
  • port — подброс портов для контейнера;
  • ps — список запущенных контейнеров;
  • pull — скачать образ контейнера из репозитория;
  • push — отправить образ в репозиторий;
  • restart — перезапустить контейнер;
  • rm — удалить контейнер;
  • run — выполнить команду в контейнере;
  • save — сохранить образ в архив tar;
  • search — поиск образов в репозитории по заданному шаблону;
  • start — запустить контейнер;
  • stats — статистика использования ресурсов контейнером;
  • stop — остановить контейнер;
  • top — посмотреть запущенные процессы в контейнере;
  • unpause — проложить выполнение процессов в контейнере.

В этой статье мы будем часто использовать команду run, рассмотрим ее опции:

  • -e — переменные окружения для команды;
  • -h — имя хоста контейнера;
  • -i — интерактивный режим, связывающий stdin терминала с командой;
  • -m — ограничение памяти для команды;
  • -u — пользователь, от имени которого будет выполнена команда;
  • -t — связать tty с контейнером для работы ввода и вывода;
  • -v — примонтировать директорию основной системы в контейнер.

Теперь, когда мы рассмотрели все основы, приведем несколько примеров работы с контейнерами. Это очень просто.

Что такое Docker Hub?

Docker Hub представляет собой открытый репозиторий образов (хранилище) контейнеров, которая поддерживается Docker Inc.

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

Это облачный онлайн-репозиторий, в котором хранятся два типа репозиториев: общедоступный и частный репозиторий. Общедоступные репозитории доступны каждому, но частный доступен заинтересованному владельцу репозиториев; Кроме того, с этим связана стоимость, если мы храним более определенного количества репозиториев как частные.

5: Многоэтапная сборка и исключение лишних инструментов

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

Начните с создания файла Dockerfile.multistage

Следующие строки, которые нужно вставить в файл, вам знакомы – они мало чем отличаются от содержимого файла Dockerfile.golang-alpine. Но сейчас нужно также указать второй образ, в который нужно скопировать двоичный файл из первого образа.

Сохраните и закройте файл. Здесь есть две команды FROM. Первая идентична Dockerfile.golang-alpine, за исключением дополнительного оператора AS multistage. Это присвоит образу имя multistage, на которое вы будете ссылаться в нижней части файла Dockerfile.multistage. Во второй команде FROM берется базовый образ alpine и копируется поверх скомпилированного приложения Go из образа multistage. Этот процесс еще больше сократит размер конечного образа, делая его готовым к производству.

Соберите образ:

Проверьте итоговый размер образа:

Образ <none> – это образ multistage, созданный с помощью команды FROM golang:1.10-alpine3.8 AS multistage. Это всего лишь посредник, используемый для сборки и компиляции приложения Go. А образ prod в этом контексте является конечным, он содержит только скомпилированное приложение Go.

3 ответа

Решение

Образы докера довольно минимальны, но вы можете установить в вашем официальном образе докера Ubuntu через:

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

Но если вам нужно ping для вашего изображения, вы можете создать или же контейнер, в котором вы выполнили вышеуказанные команды для нового изображения.

Commit:

Dockerfile:

Обратите внимание, что существуют рекомендации по созданию образов Docker, такие как очистка файлов apt-кэша после и т. Д

959

2016-10-06 16:41

Это страница Docker Hub для Ubuntu, и так она создается. На нем установлены только (несколько) минимальные минимальные пакеты, поэтому, если вам нужно что-то дополнительное, вам нужно установить его самостоятельно.

Однако обычно вы создаете Dockerfile и создаете его:

Пожалуйста, используйте Google, чтобы найти учебники и просмотреть существующие файлы Docker, чтобы увидеть, как они обычно работают:) Например, размер изображения должен быть минимизирован путем запуска после команды.

50

2016-10-06 16:41

В качестве альтернативы вы можете использовать образ Docker, на котором уже установлен ping, например busybox:

14

2018-09-13 11:18

Обычно люди тянут официальное изображение Ubuntu/CentOS, но они не понимают, что эти изображения минимальны и не имеют ничего общего с этим.

Для Ubuntu это изображение создано из официальных tarfs rootfs, предоставленных Canonical. Учитывая, что это минимальная установка Ubuntu, этот образ по умолчанию включает только локали C, C.UTF-8 и POSIX.

Можно установить net-tools (включая ifconfig, netstat), ip-utils(включая ping) и любые другие, такие как curl и т. Д., На контейнер и создать образ из контейнера или написать Dockerfile, который установит этот инструмент при создании образа.

Ниже приведен пример Dockerfile, при создании изображения из него будут использоваться следующие инструменты:

или запустите контейнер из базового образа и установите эти утилиты в контейнер, а затем передайте его в образ. docker commit -m «любое описательное сообщение» container_id image_name: lattest

В этом образе будет установлено все.

11

2018-12-21 05:44

Иногда минимальная установка Linux в Docker не определяет путь, и поэтому необходимо вызвать ping, используя….

3

2019-09-11 20:22

Я использовал приведенную ниже инструкцию в debian 10

3

2020-03-23 11:09

Каждый раз, когда вы получаете такую ​​ошибку

  • На хосте с этой командой, уже работающей с этим решением:

  • У вас нет хоста с установленным пакетом? Попробуйте это:

1

2019-01-31 03:01

Образы Docker

Образ Docker состоит из ряда слоев файловой системы, представляющих инструкции в файле Dockerfile образа, который составляет исполняемое программное приложение. Изображение — это неизменяемый двоичный файл, включающий приложение и все другие зависимости, такие как библиотеки, двоичные файлы и инструкции, необходимые для запуска приложения.

Вы можете думать об образе Docker как о снимке контейнера Docker.

Большинство образов Docker доступны в Docker Hub. Docker Hub — это облачная служба реестра, которая, среди прочего, используется для хранения образов Docker в общедоступных или частных репозиториях.

Чтобы найти изображение в реестре Docker Hub, используйте подкоманду.

Например, чтобы найти образ Ubuntu, вы должны ввести:

    Результат должен выглядеть так:

    Как вы можете видеть, поиск печатает таблицу с пятью столбцами, , , , и .

Официальный образ — это образ, который Docker разрабатывает совместно с партнерами по разработке.

Большинство образов Docker в Docker Hub помечены номерами версий. Если тег не указан, Docker выберет последний из них.

Скачать образ Docker 

Например, чтобы загрузить последнюю официальную сборку образа Ubuntu 18.04, вы должны использовать следующую команду:

В зависимости от скорости вашего Интернета загрузка может занять несколько секунд или минут.

Если не указать тег, Docker извлекает последний образ Ubuntu, который на момент написания этой статьи был 18.04.

Если вы хотите загрузить предыдущую версию Ubuntu , скажем, Ubuntu 16.04, тогда вам нужно использовать .

Чтобы перечислить все загруженные изображения, введите:

    Результат будет выглядеть примерно так:

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе

Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии

Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

Установка

Чтобы начать пользоваться Докером, необходимо установить движок — Docker Engine. На странице https://docs.docker.com/engine/install/ доступны ссылки для скачивания под все популярные платформы. Выберите вашу и установите Докер.

В работе Докера есть одна деталь, которую важно знать при установке на Mac и Linux. По умолчанию Докер работает через unix сокет

В целях безопасности сокет закрыт для пользователей, не входящих в группу docker. И хотя установщик добавляет текущего пользователя в эту группу автоматически, Докер сразу не заработает. Дело в том, что если пользователь меняет группу сам себе, то ничего не изменится до тех пор, пока пользователь не перелогинится. Такова особенность работы ядра. Для проверки того, в какие группы входит ваш пользователь, можно набрать команду .

Проверить успешность установки можно командой :

Она выдаёт довольно много информации о конфигурации самого Докера и статистику работы.

Рекомендации по использованию инструкции КОПИРОВАТЬ

Эта инструкция Dockerfile копирует один или несколько локальных файлов или папок в целевой образ докера.

  • COPY <source>… <destination>
  • COPY (этот формат требуется для путей, содержащих пробелы)

Например, используйте инструкцию COPY в Dockerfile.

Это простой пример того, как использовать инструкцию COPY в Dockerfile для создания приложения Ruby.

Он строит изображение в слоях, начиная с родительского изображения ruby: 2.5.1, используя определение FROM.

Используйте инструкцию WORKDIR, чтобы определить рабочий каталог, а затем используйте инструкцию COPY или ADD.

В этом случае, когда используется копия, он будет копировать файл из локального источника. Указывает файл в текущем каталоге в месте, определенном WORKDIR. В приведенном выше примере вторая КОПИЯ означает, что рабочий каталог в зеркале копируется из текущего каталога.

Рекомендации по использованию КОПИРОВАНИЯ для создания зеркальных слоев

Docker рекомендует использовать COPY для создания слоев изображений, сохраняя разные контексты файлов в разных слоях изображений. Это означает, что реконструкция изображения эффективна. Файлы, которые, скорее всего, будут изменены, должны находиться на нижних уровнях, а файлы, которые, скорее всего, будут изменены, должны быть добавлены последними.

Этот принцип продемонстрирован в приведенном выше примере файла dockerfile. Скопировав Gemfiles, а затем выполнив Run bundle install, вы можете использовать установленные рубиновые драгоценные камни для создания слоя изображения, который можно кэшировать. Последние две инструкции докера копируют файлы приложения в образ и используют CMD для установки команд по умолчанию.

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

Почему не стоит использовать инструкцию ADD

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

  • ADD <source>… <destination>
  • ДОБАВИТЬ (Этот формат требуется для путей, содержащих пробелы)

Однако официальное руководство Dockerfile по лучшей практике указывает, что в большинстве случаев COPY является предпочтительной инструкцией по сравнению с ADD.

Еще одна дополнительная функция ADD — это то, что он может копировать файлы с URL-адресов, но Docker рекомендует не использовать его для этой цели.

Рекомендации по копированию файлов с URL

Если источником ADD является URL-адрес, он загрузит файл и скопирует его в место назначения в образе докера. Докер считает, что использование добавления для копирования с URL-адреса обычно неэффективно, и для включения необходимых удаленных файлов лучше использовать другие стратегии.

Например, следует избегать следующих действий:

Вместо этого выполните следующие операции:

Шаг 7 — Сохранение изменений в контейнере в образ Docker

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

В данном разделе показано, как сохранить состояние контейнера в виде нового образа Docker.

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

Затем подтверждаем изменения в новом образе Docker с помощью следующей команды. 

Параметр -m позволяет задать сообщение подтверждения, чтобы облегчить вам и другим пользователям образа понимание того, какие изменения были внесены, а параметр -a позволяет указать автора. Идентификатор контейнера — этот тот самый идентификатор, который использовался ранее, когда мы начинали интерактивную сессию в контейнере Docker. Если вы не создавали дополнительных репозиториев в Docker Hub, имя репозитория () обычно является вашим именем пользователя в Docker Hub.

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

После подтверждения (commit) образа, новый образ сохраняется локально на вашем компьютере. Далее в этой инструкции мы расскажем, как отправить образ в реестр Docker (например, в Docker Hub) так, чтобы он был доступен не только вам, но и другим пользователям.

Если теперь просмотреть список образов Docker, в нем окажутся и новый образ, и исходный образ, на котором он был основан:

Результат получится примерно следующим:

В данном примере — это новый образ, созданный на основе существующего образа из Docker Hub. Разница размеров отражает внесенные изменения. В данном примере изменение связано с установкой NodeJS. В следующий раз, когда потребуется запустить контейнер Ubuntu с предустановленным NodeJS, можно использовать этот новый образ.

Образы также могут строиться с помощью файла , который позволяет автоматизировать установку программ в новом образе. Однако в данной статье этот процесс не описывается.

Давайте теперь поделимся новым образом с другими пользователями, чтобы они могли создавать на его основе контейнеры.

Управление контейнерами

Картинка описывает жизненный цикл (конечный автомат) контейнера. Кружками на нём изображены состояния, жирным выделены консольные команды, а квадратиками показывается то, что в реальности выполняется.

Проследите путь команды . Несмотря на то, что команда одна, с точки зрения работы Докера выполняется два действия: создание контейнера и запуск. Существуют и более сложные варианты исполнения, но в этом разделе мы рассмотрим только базовые команды.

Запустим nginx так, чтобы он работал в фоне. Для этого после слова run добавляется флаг :

После выполнения команды Докер выводит идентификатор контейнера и возвращает управление. Убедитесь в том, что nginx работает, открыв в браузере ссылку . В отличие от предыдущего запуска, наш nginx работает в фоне, а значит не видно его вывода (логов). Посмотреть его можно командой , которой нужно передать идентификатор контейнера:

Вы также можете подсоединиться к выводу лога в стиле . Для этого запустите . Теперь лог будет обновляться каждый раз, когда вы обновляете страницу в браузере. Выйти из этого режима можно набрав Ctrl + C, при этом сам контейнер остановлен не будет.

Теперь выведем информацию о запущенных контейнерах командой :

Расшифровка столбиков:

  • CONTAINER_ID — идентификатор контейнера. Так же, как и в git, используется сокращенная запись хеша.
  • IMAGE — имя образа, из которого был поднят контейнер. Если не указан тег, то подразумевается latest.
  • COMMAND — команда, которая выполнилась на самом деле при старте контейнера.
  • CREATED — время создания контейнера
  • STATUS — текущее состояние.
  • PORTS — проброс портов.
  • NAMES — алиас. Докер позволяет кроме идентификатора иметь имя. Так гораздо проще обращаться с контейнером. Если при создании контейнера имя не указано, то Докер самостоятельно его придумывает. В выводе выше как раз такое имя у nginx.

(Команда выводит информацию о том, сколько ресурсов потребляют запущенные контейнеры).

Теперь попробуем остановить контейнер. Выполним команду:

Если попробовать набрать , то там этого контейнера больше нет. Он удален.

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

Теперь выведем все контейнеры командой . Первыми тремя строчками вывода окажутся:

Здесь как раз два последних наших запуска. Если посмотреть на колонку STATUS, то видно, что оба контейнера находятся в состоянии Exited. То есть запущенная команда внутри них выполнилась, и они остановились. Разница лишь в том, что один завершился успешно (0), а второй с ошибкой (127). После остановки контейнер можно даже перезапустить:

Только в этот раз вы не увидите вывод. Чтобы его посмотреть, воспользуйтесь командой .

Проверка установки Docker Compose

Чтобы протестировать компоновку докеров, давайте попробуем развернуть WordPress с помощью файла компоновки. Создайте каталог проекта wordpress с помощью команды mkdir.

$ mkdir wordpress ; cd wordpress

Создайте файл docker-compose.yaml со следующим содержимым.

$ vi docker-compose.yaml
version: '3.3'

services:
   db:
     image: mysql:latest
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: sqlpass@123#
       MYSQL_DATABASE: wordpress_db
       MYSQL_USER: dbuser
       MYSQL_PASSWORD: dbpass@123#
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: dbuser
       WORDPRESS_DB_PASSWORD: dbpass@123#
       WORDPRESS_DB_NAME: wordpress_db
volumes:
    db_data: {}

Сохраните и закройте файл.

Как мы видим, мы использовали два контейнера: один для сети WordPress, а другой — для базы данных. Мы также создаем постоянный том для контейнера БД, а графический интерфейс WordPress доступен через порт «8000».

Чтобы развернуть WordPress, выполните приведенную ниже команду из каталога вашего проекта.

$ docker-compose up -d

Вывод приведенной выше команды выглядит следующим образом:

Выше подтверждает, что два контейнера созданы успешно. Теперь попробуйте получить доступ к WordPress из веб-браузера, набрав URL:

http://<Server-IP-Address>:8000

Отлично, выше подтверждается, что установка WordPress запускается через docker-compose. Нажмите «Продолжить» и следуйте инструкциям на экране, чтобы завершить установку.

Это все из этого руководства. Я надеюсь, что вы нашли это руководство информативным, не стесняйтесь делиться своими отзывами и комментариями.

Дополнительную документацию по Docker можно найти в: Документация Docker.

Шаг 1 — Установка Docker

Пакет установки Docker, доступный в официальном репозитории Ubuntu, может содержать не самую последнюю версию. Чтобы точно использовать самую актуальную версию, мы будем устанавливать Docker из официального репозитория Docker. Для этого мы добавим новый источник пакета, ключ GPG от Docker, чтобы гарантировать загрузку рабочих файлов, а затем установим пакет.

Первым делом обновите существующий список пакетов:

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

Добавьте ключ GPG для официального репозитория Docker в вашу систему:

Добавьте репозиторий Docker в источники APT:

Потом обновите базу данных пакетов и добавьте в нее пакеты Docker из недавно добавленного репозитория:

Убедитесь, что установка будет выполняться из репозитория Docker, а не из репозитория Ubuntu по умолчанию:

Вы должны получить следующий вывод, хотя номер версии Docker может отличаться:

Output of apt-cache policy docker-ce

Обратите внимание, что не установлен, но является кандидатом на установку из репозитория Docker для Ubuntu 20.04 (версия ). Установите Docker:

Установите Docker:

Docker должен быть установлен, демон-процесс запущен, а для процесса активирован запуск при загрузке. Проверьте, что он запущен:

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

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

Репозиторий для localhost

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

Чтобы запустить сервис, который сможет принимать запросы docker push и docker pull, вводим команду:

docker run -d -p 5000:5000 —restart=always —name registry registry:2

* в данном примере мы поднимает контейнер Docker с именем registry из образа registry:2. Он будет слушать сетевые запросы на порту 5000. Параметр —restart=always позволит автоматически запускаться контейнеру после перезагрузки сервера.

Проверяем, что на порту 5000 у нас запустился контейнер docker:

ss -tunlp | grep :5000

Мы должны увидеть что-то на подобие:

tcp     LISTEN   0    4096     *:5000     *:*      users:((«docker-proxy»,pid=484238,fd=4))

Попробуем проверить работу нашего репозитория. На том же сервере сначала загрузим из облака докер-хаба образ, например, для python:

docker pull python:latest

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

docker tag python:latest localhost:5000/python

* в данном примере мы указываем тег localhost:5000/python, в названии которого мы видим localhost:5000 — локальный сервер, порт 5000.

Загружаем образ питона на наш сервер:

docker push localhost:5000/python

Теперь удалим тот образ, который был загружен из облака:

docker image remove python:latest

… и образ, который мы загрузили в наш локальный репозиторий:

docker image remove localhost:5000/python

Теперь снова загрузим образ python, но на этот раз из нашего собственного репозитория:

docker pull localhost:5000/python

Мы должны увидеть процесс загрузки:

Using default tag: latest
latest: Pulling from python
8bf9c589d5f9: Pull complete 
4c70e46d8b5f: Pull complete 
ea848ad42f0d: Pull complete 
48fe137f8d26: Pull complete 
4b13f6ed9b0c: Extracting  56.82MB/192.3MB
ba85279f50e0: Download complete 
59a18d8c3680: Download complete 
c610993f70c6: Download complete 
a9afc028cd66: Download complete 

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

Digest: sha256:1e3b89f69bb6ada672153256bd88d74ae60571f6755703369a108c76595ea00f
Status: Downloaded newer image for localhost:5000/python:latest
localhost:5000/python:latest

Наш репозиторий Docker готов и работает для локального сервера.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: