У меня есть изображение Docker, с которым я обрабатываю изображение и получаю полученное изображение с помощью curl.Я открыл порт в своем Dockerfile
FROM debian:latest
RUN apt-get -y update && apt-get install -y git python3-pip python3-dev python3-tk vim procps curl
#Face classificarion dependencies & web application
RUN pip3 install numpy scipy scikit-learn pillow tensorflow pandas h5py opencv-python==3.2.0.8 keras statistics pyyaml pyparsing cycler matplotlib Flask
ADD . /ekholabs/face-classifier
WORKDIR ekholabs/face-classifier
ENV PYTHONPATH=$PYTHONPATH:src
ENV FACE_CLASSIFIER_PORT=8084
EXPOSE $FACE_CLASSIFIER_PORT
ENTRYPOINT ["python3"]
CMD ["src/web/faces.py"]
Как только я создаю образ:
sudo docker build . --tag fc
Я запускаю свой образ, используя
sudo docker run -d -p 8084:8084 --name=face-classification fc
Как только я это делаю, ясначала попытайтесь свернуться для вывода:
sudo curl -v -F image=@smile.png http://localhost:8084/classifyImage > output.txt
и получите ошибку отклоненного соединения:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 127.0.0.1...
* connect to 127.0.0.1 port 8084 failed: Connection refused
* Failed to connect to localhost port 8084: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 8084: Connection refused
В этот момент я не был уверен, что соединение неверно, поэтому я пытаюсьобщий curl для локального хоста:
sudo curl http://localhost:8084/
и получить следующую ошибку:
curl: (7) Failed to connect to localhost port 8084: Connection refused
На этом этапе я проверяю, открыт ли порт док-станции.Из этого вывода похоже, что он не выставлен, так как ничего не перечислено в портах.
ubuntu@ip-172-31-6-79:~/face_classification$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2e343778c8fc fc "python3 src/web/fac…" 8 minutes ago Exited (1) 8 minutes ago face-classification
Как правильно установить соединение?