소개
19 세기 빅토리아 시대를 배경으로, 참가자들이 매개체 (Medium) 역할을 맡는 장면을 상상해 보세요. 배경은 신비로운 빅토리아 시대 저택이며, 매개체의 목표는 Dockerized 컨테이너의 비밀을 풀어서 저 너머의 영혼을 불러내는 것입니다.
19 세기 빅토리아 시대를 배경으로, 참가자들이 매개체 (Medium) 역할을 맡는 장면을 상상해 보세요. 배경은 신비로운 빅토리아 시대 저택이며, 매개체의 목표는 Dockerized 컨테이너의 비밀을 풀어서 저 너머의 영혼을 불러내는 것입니다.
이 단계에서는 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
이 단계에서는 Docker 컨테이너 내에서 사용자 지정 Python 애플리케이션을 실행하고 사용자 지정 포트를 노출합니다.
app.py라는 파일에 간단한 Python 애플리케이션을 생성하는 것으로 시작합니다.
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)
Python 애플리케이션용 이미지를 빌드하기 위해 다음 내용으로 Dockerfile을 생성합니다.
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 컨테이너의 네트워킹 기능에 대한 귀중한 통찰력을 얻었으며, 이를 통해 컨테이너 배포를 더 잘 관리하고 문제 해결할 수 있게 되었습니다.