Просмотр портов контейнеров Docker

DockerBeginner
Практиковаться сейчас

Введение

Представьте сцену, установленную в 19 веке, в эпоху Виктории, где участники играют рольmediumа. Фон - это таинственный Викторианский особняк, и цельmediumа - вызвать духов из заграницы, раскрыв секреты докеризованных контейнеров.

Исследуйте порты Docker-контейнера

В этом шаге вы начнете с запуска Docker-контейнера и затем изучите его открытые порты.

Сначала запустим простой контейнер Nginx:

docker run -d -p 8080:80 --name my-nginx nginx

Теперь вы будете проверять порты, на которых слушает контейнер:

docker port my-nginx

Ожидаемый вывод должен показать сопоставление портов контейнера с портами хост-машины.

80/tcp - > 0.0.0.0:8080
80/tcp - > :::8080

Тестирование с пользовательским портом

На этом шаге вы запустите нативное приложение Python внутри Docker-контейнера и откроете пользовательский порт.

Начните с создания простого приложения Python в файле с именем app.py:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Docker!'

if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)

Создайте Dockerfile с таким содержанием, чтобы собрать образ для приложения Python:

FROM python:3.8
WORKDIR /app
COPY. /app
RUN pip install flask
EXPOSE 5000
CMD ["python", "app.py"]

Теперь создайте Docker-образ, запустите его, открыв пользовательский порт 5000, и сопоставьте открытый порт с 8081 на хосте:

docker build -t my-python-app.
docker run -itd -p 8081:5000 --name python-app my-python-app

После запуска контейнера проверьте, можно ли получить доступ к приложению, добавив сопоставление веб-сервиса в верхнем меню и посетив URL-адрес.

Резюме

В этом практическом занятии участники отправились в путешествие по изучению и пониманию того, как перечислять порты контейнеров в Docker. Создавая и проверяя порты Docker-контейнеров, они приобрели ценные знания о сетевых возможностях Docker-контейнеров, что позволяет им лучше управлять и устранять неполадки при развертывании контейнеров.