docker -> podman, Oracle 19c 이전

Rinjae·2024년 2월 16일

개요

  • Rocky 8 + Docker (compose) 환경에서 동작 중인 Oracle 19c 개발용 디비 환경 ->
    RHEL 8.4 (폐쇄망 환경) 내 podman 으로 운영해야 하는 상황
  • RHEL 환경에는 podman 이 사전에 설치 되어 있는 상황

docker-compose.yml

version: '3'
services:
  database:
    container_name: oracle-19c
    restart: unless-stopped
    environment:
      - ORACLE_CHARACTERSET=KO16MSWIN949
    image: [private repo]/oracle/database:19.3.0-ee
    shm_size: '2gb'
    volumes:
      - ./oradata:/opt/oracle/oradata
      - ./data:/data
    ports:
      - 18521:1521

이전 절차

# 컨테이너 이미지 파일 저장(tar 형식)
docker save [private repo]/oracle/database:19.3.0-ee -o oracle-19c.img

# oradata 등 전체 파일 tar.gz 압축
sudo tar -zcvf oracle-19c.20240226.tar.gz docker-compose.yml oracle-19c.img oradata README.md

# RHEL 8 서버로 복사
scp oracle-19c.20240226.tar.gz [user-id]@192.168.20.50:


# RHEL 8 서버 에서 압축 해제
tar -zxvf oracle-19c.20240226.tar.gz

# 데이터 폴더 생성 및 권한 조정
mkdir chmod data
chmod 777 oradata data -R

# podman 이미지 로드
podman load -i oracle-19c.img

# podman 컨테이너 실행
podman run -d --name oracle-19c \
  -e ORACLE_CHARACTERSET=KO16MSWIN949 \
  --shm-size=2gb \
  -v ./oradata:/opt/oracle/oradata \
  -v ./data:/data \
  -p 18521:1521 \
  [private repo]/oracle/database:19.3.0-ee

Troubleshootings

podman 컨테이너 실행시 volume 부분에서 Permission denied 발생

selinux 해제 확인

[{user-id}@airgap-rhel8 ~]$ getenforce
Enforcing
[{user-id}@airgap-rhel8 ~]$ sudo setenforce 0
[sudo] password for dearmai:
[{user-id}@airgap-rhel8 ~]$ getenforce
Permissive
[{user-id}@airgap-rhel8 ~]$ sudo su -
Last login: Wed Nov 15 00:48:21 KST 2023 on tty1
[root@airgap-rhel8 ~]# vi /etc/selinux/config

[root@airgap-rhel8 ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

0개의 댓글