Разоблачение портов док-контейнера не работает - PullRequest
0 голосов
/ 26 августа 2018

У меня проблемы с выставлением порта из контейнера докера на мой сервер. Вот что я сделал:

Я написал очень простое приложение для весенней загрузки, которое работает на порте 8080.
Сейчас я пытаюсь развернуть его в док-контейнере на моем сервере. На основе Spring - Начало работы с Docker Руководство пользователя Я создал следующий Dockerfile:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

На втором шаге я скопировал свой jar в тот же каталог (где хранится файл dockerfile) и собрал контейнер с помощью следующей команды:

docker build . -t testportmapping --build-arg JAR_FILE=swagger-v2-person-ws-0.0.1-SNAPSHOT.jar

Теперь, когда я бегу:

docker run -d testportmapping:latest -p 9065:8080

Команда выполняется без ошибок. Но если я взгляну на: docker container ls: я увижу, что не было создано никакого сопоставления портов:

CONTAINER ID        IMAGE                    COMMAND                  CREATED               STATUS              PORTS                 NAMES
f15639c81903        testportmapping:latest   "java -Djava.securit…"   About 6 minutes ago   Up 6 minutes                              mystifying_payne

Кто-нибудь знает, что я делаю неправильно?

Что я пробовал до сих пор:

  1. Использование другого локального порта
  2. Добавление ЭКСПОЗИЦИИ в Dockerfile
  3. Добавление --net=host к команде docker run
  4. Запуск подключенного контейнера, чтобы проверить, правильно ли запускается приложение (оно работает)

Моя настройка:

root@jupiter /h/n/d/p/swagger-v2# docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:24:56 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
  Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:23:21 2018
  OS/Arch:          linux/amd64
  Experimental:     false


root@jupiter /h/n/d/p/swagger-v2# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:        16.04
Codename:       xenial

1 Ответ

0 голосов
/ 26 августа 2018

Выполнить ниже команды

docker run -d -p 9065:8080 testportmapping:latest

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

P.S. Как упомянул @David Maze в комментариях, все, что приходит после того, как имя изображения передается в контейнер

...