기존 colima를 사용해 oracle 컨테이너를 실행해 사용해봤다.
하지만 당시 컨테이너를 run할 때 볼륨 마운트엔 실패했었다.
무엇이 문제였는지, 볼륨 마운트도, 포트변경도, 아무것도 안됐다.
백업
1. colima를 실행한다.
colima start --memory 4 --arch x86_64
2. 컨테이너를 확인한다.
docker ps -a
3. oracle 컨테이너를 start한다.
docker start oracle
4. oracle 컨테이너 셸을 실행한다.
docker exec -it oracle /bin/bash
5. 일반적으로 오라클 데이터 파일이 저장되는 디렉터리로 이동한 뒤, 파일이 있는지 확인한다.
cd /opt/oracle/oradata
ls -l
6. 기존 데이터 파일을 선택 경로로 복사한다. (backup이라는 폴더를 Documents에 미리 만들어두었다.)
docker cp oracle:/opt/oracle/oradata /Users/사용자이름/Documents/backup
복사 완료
새로운 oracle2 컨테이너를 생성해본다.
1. 새로운 컨테이너를 실행할 때, 백업된 데이터를 마운트해서 사용한다.
docker run --name oracle2 -e ORACLE_PASSWORD=pass -p 2521:2521 -v /Users/사용자이름/Documents/backup/oradata:/opt/oracle/oradata -d gvenzl/oracle-xe
--name oracle2: 새로운 컨테이너의 이름을 oracle2로 지정한다.
-e ORACLE_PASSWORD=pass: 환경 변수를 설정하여 Oracle 데이터베이스의 비밀번호를 pass로 설정한다.
-p 2521:1521: 호스트의 포트 2521을 컨테이너의 포트 1521에 매핑한다.
-v /Users/사용자이름/Documents/backup/oradata:/opt/oracle/oradata: 호스트의 백업된 데이터를 컨테이너의 /opt/oracle/oradata 디렉토리에 마운트한다.
-d gvenzl/oracle-xe: Oracle XE 이미지를 사용하여 컨테이너를 백그라운드에서 실행한다.
안된다.
지난 번과 마찬가지로
컨테이너 실행하면 자꾸 꺼진다.
확인을 할 수도 없다 !
docker run --restart unless-stopped --name oracle2 -e ORACLE_PASSWORD=1234 -p 2521:2521 -v /Users/tars/Documents/backup/oradata:/opt/oracle/oradata -d gvenzl/oracle-xe
1. 로그를 확인해본다.
docker logs oracle2
=> 어쩌고 저쩌고....
- 파일 소유권을 변경할 수 없는 문제
- ORACLE_HOME 환경 변수가 설정되지 않아 Oracle Net Listener를 시작할 수 없는 문제
라고 한다...
docker run --restart unless-stopped --name oracle3 -e ORACLE_PASSWORD=1234 -p 2521:2521 -v /Users/tars/Documents/backup/oradata:/opt/oracle/oradata -d custom-oracle-xe
어쩌구 저쩌구 했더니 재시작 문제는 해결했는데
로그 메시지에서 나타나는 Permission denied 오류는 데이터베이스가 파일 시스템의 일부 파일에 접근하거나 소유권을 변경하려 할 때 권한이 없음을 나타냅니다. 특히, macOS에서 Docker를 사용할 때 발생할 수 있는 문제입니다.
결국 해결은 못했다.
좀 더 공부해보고 해결해보는 걸로...
'docker' 카테고리의 다른 글
[docker] 네트워킹 심화: DNS부터 볼륨 관리까지 (0) | 2024.08.12 |
---|---|
[docker] 네트워킹 기본 _bridge, host, overlay (0) | 2024.08.12 |
[docker] 컨테이너간 통신 이해 (0) | 2024.08.12 |
[docker] 컨테이너 볼륨 백업 (1) | 2024.07.24 |
쿠버네티스 오버뷰 (1) | 2024.06.17 |