[파이썬] 도커 컨테이너와 호스트 간 포트 매핑

도커(Docker)는 컨테이너화된 환경에서 애플리케이션을 실행하기 위한 오픈 소스 플랫폼입니다. 이러한 도커 컨테이너는 호스트 환경과 독립적으로 실행되며, 다양한 애플리케이션을 격리된 환경에서 구동할 수 있게 해줍니다.

도커 컨테이너를 호스트에서 실행할 때, 컨테이너 내 애플리케이션이 외부와 통신하기 위해서는 포트를 열어야 합니다. 이 포트 매핑은 호스트와 컨테이너 간의 통신을 원활하게 해주기 때문에 중요한 개념입니다.

이번 글에서는 도커 컨테이너와 호스트 간 포트 매핑을 파이썬 코드로 알아보겠습니다.

포트 매핑 예시

아래는 간단한 Flask 웹 애플리케이션을 도커 컨테이너로 실행하고 호스트와의 포트 매핑을 설정하는 예시입니다.

from flask import Flask

app = Flask(__name__)

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

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

위 코드는 Flask를 이용하여 간단한 웹 애플리케이션을 구현한 것입니다. 앱은 기본적으로 5000번 포트에서 실행됩니다.

다음으로, 이 애플리케이션을 도커 컨테이너에서 실행해보겠습니다.

$ docker run -d -p 5000:5000 flask-app

위 명령을 통해 flask-app이라는 이름의 도커 이미지를 실행하고, 호스트의 5000번 포트를 컨테이너의 5000번 포트로 매핑합니다.

이제 웹 브라우저를 열고 http://localhost:5000에 접속하면 “Hello, Docker!”라는 메시지를 볼 수 있습니다. 이는 호스트와 컨테이너 간의 포트 매핑을 통해 웹 애플리케이션에 접근한 결과입니다.

요약

도커 컨테이너와 호스트 간의 포트 매핑은 컨테이너 내 애플리케이션과 외부와의 통신을 가능하게 해주는 중요한 개념입니다. 이를 통해 도커 컨테이너로 구동된 애플리케이션에 접근하고 사용할 수 있습니다.

위 예시 코드를 참고하여 도커 컨테이너와 호스트 간의 포트 매핑을 설정하는 방법을 익히고, 다양한 애플리케이션을 도커 컨테이너로 실행해보세요.

Happy coding!