클라우드/OpenShift

[OpenShift] 네트워크 포트 매핑

세브웁스 2023. 5. 30. 12:00
반응형

네트워크 포트 매핑

사용 이유 :  Rootless 컨테이너에 사용할 수 있는 IP 주소가 없기 때문에 호스트 네트워크에서 rootless 컨테컨테이 액세스 하는 것이 어려움

따라서 컨테이너 서비스에 대한 외부 액세스를 허용하는 포트 전달 규칙 정의 필요

 

: podman run –p [IP] [host port] [container port]


아파치 생성

[user@host ~]$ podman run -d --name apache1 -p 8080:8080 \
> registry.redhat.io/rhel8/httpd-24

 

아파치 생성 (옵션주고 아파치 생성 시생략)

[user@host ~]$ podman run -d --name apache2 \
> -p 127.0.0.1:8081:8080 registry.redhat.io/rhel8/httpd-24

 

아파치 생성 (포트 미지정시 컨테이너의 임의 포트 할당)

[user@host ~]$ podman run -d --name apache3 -p 127.0.0.1::8080 \
> registry.redhat.io/rhel8/httpd-24

 

Podman에서 할당한 포트 확인

[user@host ~]$ podman port apache3

 

홈페이지 확인

[user@host ~]$ curl -s 127.0.0.1:35134 | egrep '</?title>'

 

-p 옵션을 사용하여 컨테이너 포트를 지정한 경우에만 사용 가능한 임의의 호스트 포트가 컨테이너 할당

[user@host ~]$ podman run -d --name apache4 \
> -p 8080 registry.redhat.io/rhel8/httpd-24

 

컨테이너의 포트 확인

[user@host ~]$ podman port apache4

[실습 4] 데이터베이스 로드

 

강의 실습 시작

[student@workstation ~]$ lab manage-networking start

 

레드헷 레지스트리 접속

[student@workstation ~]$ podman login registry.redhat.io

 

포트포워딩 및 변수 설정하여 mysql 실행

[student@workstation ~]$ podman run --name mysqldb-port \
>  -d -v /home/student/local/mysql:/var/lib/mysql/data -p 13306:3306 \
>  -e MYSQL_USER=user1 -e MYSQL_PASSWORD=mypa55 \
>  -e MYSQL_DATABASE=items -e MYSQL_ROOT_PASSWORD=r00tpa55 \
>  registry.redhat.io/rhel8/mysql-80:1

 

정상 실행 확인

[student@workstation ~]$ podman ps --format="{{.ID}} {{.Names}} {{.Ports}}"

 

dump파일을 통해 데이터 밀어 넣기

[student@workstation ~]$ mysql -uuser1 -h 127.0.0.1 -pmypa55 -P13306 \
> items < /home/student/DO180/labs/manage-networking/db.sql

 

아이템 테이블 내용 확인법 1

[student@workstation ~]$ podman exec -it mysqldb-port \
> mysql -uroot items -e "SELECT * FROM Item"

 

아이템 테이블 내용 확인법 2

[student@workstation ~]$ mysql -uuser1 -h 127.0.0.1 -pmypa55 -P13306 \
> items -e "SELECT * FROM Item"

 

아이템 테이블 내용 확인법 3

[student@workstation ~]$ podman exec -it mysqldb-port /bin/bash
bash-4.4$ mysql -uroot items -e "SELECT * FROM Item"
bash-4.4$ exit

 

강의 실습 종료

[student@workstation ~]$ lab manage-networking finish

 

반응형