Docker - Восстановление установленных библиотек после выхода - PullRequest
0 голосов
/ 04 июня 2018

Я новичок в Docker, и я выполнил эти две команды в своем терминале Mac

docker pull amazonlinux
docker run -v $(pwd):/lambda-project -it amazonlinux

После выполнения этих двух команд я вошел в терминал Linux, где я установил Nodejs и несколько узловых модулей

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 6.11.5
npm -v
npm install serverless -global

до сих пор все работало нормально, я смог запустить npm -v , и он показал мне версию npm, а также serverless -v работал нормально.

Затем я сделал выход и вышел из контейнера в свой локальный терминал.

Затем я снова вошел в свой контейнер, используя следующую команду

docker run -v $(pwd):/lambda-project -it amazonlinux

На этот раз мои установки исчезли. npm -v дал мне команду, не найденную.

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

1 Ответ

0 голосов
/ 04 июня 2018

С каждой командой docker run вы запускаете еще один новый контейнер.Вы можете запустить команду docker ps --all.Вы увидите все контейнеры (включая вышедшие) и их идентификаторы.Вы можете перезапустить покинутый контейнер с помощью команды docker restart <id>.Контейнер сейчас запущен.С помощью команды docker attach <id> вы снова в контейнере.Все установленные библиотеки все еще должны присутствовать, но:

Загруженный скрипт оболочки устанавливает некоторые переменные оболочки.После подключения к контейнеру вы можете снова запустить скрипт оболочки: . ~/.nvm/nvm.sh.Теперь вы можете получить доступ к npm.Эта команда оболочки выводит, что она сделала и что нужно сделать, чтобы сохранить эти изменения.

Если вы хотите сохранить все эти изменения и регулярно использовать их, вы можете написать Dockerfile, который создает образ со всеми этими изменениями.библиотеки уже установлены.На этой официальной странице вы начали писать Dockerfiles: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

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