#docker #vue.js #vue-cli
Вопрос:
Я только что выучил Докера.
Я скачал файл изображения ubuntu 18.04.
nodejs
и npm
устанавливаются в контейнер.
После того, как я установил необходимые пакеты, npm install
.
Воспользуйся npm run serve
.
Я не вижу localhost:8080 во внешней сети mac.
Я выполняю поиск в Google на основе следующей информации.
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
Но я вижу, что все используют файл docker.
Потому что я только что выучил docker, но мало что знаю о файле docker.
Я надеюсь, что после входа в контейнер служба запуска npm может быть доступна извне, что мне делать?
docker exec -it 858ba945a7386a7b318587ea35d903fb78b5bc6324d3bbc14c2969d7974ea44d /bin/bash
Комментарии:
1. Здесь слишком многое нужно пережить. Но вы должны начать с файла dockerfile. Используйте это для обеспечения вашего контейнера. Когда вы запускаете его, вы должны затем указать порты, к которым вы хотите получить доступ с вашего хоста. Вы еще довольно далеки от того, чтобы правильно использовать это.
2. Вы хотите использовать контейнеры для целей разработки или развертывания?
3. Сейчас я только на стадии разработки, поэтому хочу использовать самый простой способ для достижения этой цели.
4. У Docker есть пример учебника по приложениям , который проходит через файловую систему Docker (даже с приложением узла). Как говорит @SoftwareEngineer, это в основном необходимая часть использования Docker.
Ответ №1:
Первый
Используйте непосредственно официальный node:<version>
образ, а не ubuntu или другой образ S. O. Рекомендуется исправить версию.
Образ узла содержит узел, npm и среду S. O.
Второй
Если вы используете Docker Compose, docker-compose.yml
вам нужно сопоставить порты вашего сервиса (которые содержат node
изображение) следующим образом:
ports:
- "8080:8080"
где первое-это то, что вы вызываете из своего браузера (http://localhost:8080).
(Игнорируйте возможный отдельный контейнер nginx/веб-сервера).
Если вы используете Docker непосредственно, вы запускаете команду с параметром-p, как это:
docker run -p 8080:8080 <container>
Ответ №2:
вы должны добавить сопоставление портов см. Документы
-p 8080:8080 Сопоставьте TCP-порт 80 в контейнере с портом 8080 на хосте Docker.
Комментарии:
1.
docker -p 8080:8080 exec -it 858ba945a7386a7b318587ea35d903fb78b5bc6324d3bbc14c2969d7974ea44d /bin/bash
?? Это не работает