У меня проблемы с выставлением порта из контейнера докера на мой сервер.
Вот что я сделал:
Я написал очень простое приложение для весенней загрузки, которое работает на порте 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
Кто-нибудь знает, что я делаю неправильно?
Что я пробовал до сих пор:
- Использование другого локального порта
- Добавление ЭКСПОЗИЦИИ в Dockerfile
- Добавление
--net=host
к команде docker run
- Запуск подключенного контейнера, чтобы проверить, правильно ли запускается приложение (оно работает)
Моя настройка:
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