반응형
Notice
Recent Posts
Recent Comments

04-29 07:04
관리 메뉴

SaevOps

[Open Shift] OpenShift 정의와 컨테이너 이미지 사용 실습 본문

클라우드/OpenShift

[Open Shift] OpenShift 정의와 컨테이너 이미지 사용 실습

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

Open Shift

- 정의 : 컨테이너 인프라를 토대로 빌드된 모듈식 구성 요소 및 서비스 세트 (Paas)

- 기능

1) 개발자를 위한 원격 관리

2) 멀티 테넌시,

3) 보안 향상

4) 모니터링 및 감사

5) 어플리케이션 라이프사이클 관리

6) 셀프 서비스 인터페이스

7) OepnShift 경로 제공 (관리 가능한 방식으로 컨테이너화된 어플리케이션 외부 액세스 가능)

 

- 운영체제 : Red Hat Enterprise Linux Core OS

 

Podman

- 정의 : 도커명령어랑 동일하며, 컨테이너 이미지를 검색하고 가져오는 서비스

- 명령어

1). Ps : 프로세스 조회

ID | 컨테이너 이미지 | 생성시 실행 명령 | 생성 일시 | 종료 이후시간 | 포트 | 컨테이너 이름

 

2) run : 컨테이너 실행

-p : 포트맵핑 –d : 데몬실행 –e : 환경변수 설정

 

3) stop : 컨테이너 중지

 

4) kill : 주 프로세스 종료

 

5) restart : 재시작

 

6. port : 포트 지정

 

7) rm : 컨테이너 삭제


[실습 1]을 사용하여 컨테이너 이미지 가져오기

 

- 컨테이너 이미지 이름

- registry-name/user-name/image-name:tag

- 레지스트리이름/이미지가 속한 사용자/사용자 네임스페이스/이미지 버전

 

이미지 검색

 

[user@demo ~]$ podman search rhel

 

이미지 내려받기

[user@demo ~]$ podman pull rhel

 

내려받은 이미지 정보 보기

[user@demo ~]$ podman images

 

컨테이너 실행

[user@demo ~]$ podman run ubi8/ubi:8.3 echo 'Hello world!'

 

컨테이너 백그라운드 프로세스로 실행

[user@demo ~]$ podman run -d -p 8080 registry.redhat.io/rhel8/httpd-24

 

포트(포트포워딩) 정보 출력

[user@demo ~]$ podman port -l

 

홈페이지 출력

[user@demo ~]$ curl http://0.0.0.0:44389

 

컨테이너 내부에서 bash셸 실행

[user@demo ~]$ podman run -it ubi8/ubi:8.3 /bin/bash

 

e 옵션으로 환경변수 삽입

[user@demo ~]$ podman run -e GREET=Hello -e NAME=RedHat \
> ubi8/ubi:8.3 printenv GREET NAME

 

MYSQL 데이터베이스 환경변수 등록(자격증명) 설정

[user@demo ~]$ podman run --name mysql-custom \
 -e MYSQL_USER=redhat -e MYSQL_PASSWORD=r3dh4t \
 -e MYSQL_ROOT_PASSWORD=r3dh4t \
 -d registry.redhat.io/rhel8/mysql-80​

[실습 2]데이터베이스 인스턴스 생성

Workstation에서 student 사용자 터미널 실행

 

컨테이너 생성 명령 실행

[student@workstation ~]$ lab container-create start

Red Hat Container Catalog에 로그인

[student@workstation ~]$ podman login registry.redhat.io
Username: your_username
Password: your_password
Login Succeeded!

 

Red Hat Container Catalog Mysql 이미지에서 컨테이너 시작

[student@workstation ~]$ podman run --name mysql-basic \
-e MYSQL_USER=user1 -e MYSQL_PASSWORD=mypa55 \
-e MYSQL_DATABASE=items -e MYSQL_ROOT_PASSWORD=r00tpa55 \
-d registry.redhat.io/rhel8/mysql-80:1

 

컨테이너 정상 시작 확인

[student@workstation ~]$ podman ps --format "{{.ID}} {{.Image}} {{.Names}}"
2d37682eb33a registry.redhat.io/rhel8/mysql-80:1 mysql-basic

 

컨테이너 샌드박스에 액세스

[student@workstation ~]$ podman exec -it mysql-basic /bin/bash
bash-4.4$

 

데이터베이스에 데이터 추가

bash-4.4$ mysql -uroot
mysql> SHOW DATABASES;
mysql> USE items;
mysql> CREATE TABLE Projects (id int NOT NULL,
-> name varchar(255) DEFAULT NULL,
-> code varchar(255) DEFAULT NULL,
-> PRIMARY KEY (id));
mysql> SHOW TABLES;
mysql> INSERT INTO Projects (id, name, code) VALUES (1,'DevOps','DO180');
mysql> SELECT * FROM Projects;
mysql> exit;
bash-4.4$ exit

 

사용 종료

[student@workstation ~]$ lab container-create finish

 

반응형
Comments