Developer_hong

[Docker] run -p,run -P, run --expose 차이 본문

프로그래밍/Docker

[Docker] run -p,run -P, run --expose 차이

Developer_hong 2021. 5. 17. 13:59
반응형

서버에서 ubuntu 도커 이미지를 다운받아
ubuntu_test라는 이름의 컨테이너를 생성하는 것으로 예를 들어 설명하겠습니다

 

[docker '-p' option]
-> docker run -it -p 3306:9999 --name ubuntu_test ubuntu
도커 컨테이너를 띄우고 있는 운영체제 서버 3306 포트로 들어온 요청을 도커 컨테이너의 9999 포트로 매핑해준다는 의미
즉, 123.45.67.89라는 서버에서 ubuntu_test 도커를 -p 3306:9999 옵션을 통해  만들었다면
123.45.67.89 서버의 3306 포트로 보내진 요청을 도커 컨테이너 ubuntu_test의 9999 포트로 보내준다

 

[docker '--expose' option]
-> docker run -it -p --expose=9999 -P --name ubuntu_test ubuntu
도커 컨테이너를 띄우고 있는 운영체제와 ubuntu_test 컨테이너의 9999포트를 외부에 노출할 예정이라고 명시

 

* EXPOSE는 호스트와 연결만 할 뿐 외부에 노출은 되지 않습니다. 포트를 외부에 노출하려면 docker run 명령의 -p, -P 옵션을 사용해야 합니다.

'-p' , '-P' 차이

  -p, --publish list                   Publish a container's port(s) to the host

  -P, --publish-all                    Publish all exposed ports to random ports


[예를 들어 123.45.67.89 서버에서 도커 컨테이너 생성 테스트]
1. --expose
$ docker run -it --expose=9999 --name ubuntu_test ubuntu

-> 123.45.67.89 서버에 있는 ubuntu_test 컨테이너의 9999 포트를 노출시킬 것이라고 명시만 한다

CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES

67304e63a5| ubuntu| "/bin/bash" | 6 min ago | Up 6min | 9999/tcp | ubuntu_test


2. --expose -p (소문자)
$ docker run -it --expose=9999 -p 3306:9999 --name ubuntu_test ubuntu
-> 123.45.67.89 서버의 3306포트와 ubuntu_test 컨테이너의 9999 포트를 매핑한다

CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES

67304e63a5| ubuntu| "/bin/bash" | 6 min ago | Up 6min |0.0.0.0:3306->9999/tcp, :::3306->9999/tcp | ubuntu_test



3. --expose -P (대문자)
$ docker run -it --expose=9999 -P --name ubuntu_test ubuntu
-> 123.45.67.89 서버의 랜덤 4918포트와 ubuntu_test 컨테이너의 9999 포트를 매핑한다

CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES

67304e63a5| ubuntu| "/bin/bash" | 6 min ago | Up 6min |0.0.0.0:4918->9999/tcp, :::4918->9999/tcp | ubuntu_test

 

반응형

'프로그래밍 > Docker' 카테고리의 다른 글

[Docker] 2. 도커 컨테이너 이미지 저장  (0) 2021.05.11
[Docker] 1. Linux ubuntu install + Mysql  (0) 2021.05.11
Docker 기본 명령어  (0) 2021.05.06