#docker
#docker
Вопрос:
Итак, я пытаюсь запустить Docker из подключаемого модуля VS code,
Пытаюсь создать образ Docker, чтобы посмотреть, работает ли он.
И я получаю это сообщение об ошибке
Выполнение команды:
docker run --rm -it -p 3000:3000/tcp -p 5000:5000/tcp ecommerce:latest
docker: Ответ об ошибке от демона: сбой драйвера при программировании внешнего подключения на конечной точке clever_hermann (4c4b6a299257d59a8bad812ee498ecbe689a1e134492dfbb8d9da4dc2acfee35): Ошибка привязки для 0.0.0.0: 5000: порт уже выделен. Терминальный процесс «/usr/bin/zsh ‘-c’, ‘docker run —rm -it -p 3000:3000 / tcp -p 5000:5000/ tcp ecommerce: latest» завершен с кодом выхода: 125.
Это мой Dockerfile
FROM node:latest
RUN mkdir /app
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
EXPOSE 5000
CMD [ "npm", "run", "dev" ]
Есть какие-либо подсказки о том, как продолжить?
Комментарии:
1. Есть ли у вас какое-либо другое приложение, запущенное на вашем порту 5000? (порт хоста, а не гостевой)
2. по-видимому, да, но я понятия не имею, как это проверить. Я даже не знаю, что такое порт в смысле ИТ. Но проблема решена с помощью приведенного ниже ответа
3. Конечно, решаемая. Потому что он не использует порт 5000. 5000 не зарезервированы. Возможно, вы запустили сервер npm на 5000 или другой службе
4. @mommonteirocl я не понимаю. Какая вещь не использует порт 5000? что значит «порт 5000 не зарезервирован»?
Ответ №1:
Это связано с тем, что некоторые другие приложения или контейнеры запущены на вашем компьютере и получили эти номера портов. Но все же вы можете запустить, используя изменения в сопоставлении портов.
docker run --rm -it -p 8282:3000/tcp -p 8181:5000/tcp ecommerce:latest
В приведенной выше команде вы сопоставляете порт контейнера 3000/tcp
со своей машиной localhost:8282
и то же самое для 5000/tcp
.
После запуска контейнеров перейдите в браузер http://localhost:8181
и http://localhost:8282
для соответствующего вывода
Комментарии:
1. @MrFacundo если это решило проблему, пожалуйста, примите мой ответ!!
2. как мне это сделать?
3. @MrFacundo в левой части моего ответа есть кнопка ✔, поэтому нажмите на нее. Чуть ниже кнопки upvote и downvote
4. о, круто, я не знал, что должен был это сделать. Еще раз спасибо, просто из любопытства, чем это полезно для вас (или любого другого пользователя)? ты получаешь баллы? что вы делаете с этими точками, наземными заданиями?
5. @MrFacundo это просто даст несколько очков мне и вам тоже. Нет, нет, это никого не приведет к выполнению заданий. Если вы примете ответ, это будет полезно для других в будущем, если у кого-нибудь возникнет такая же проблема, тогда они сначала посмотрят на принятый ответ. вот и все!!