성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[tree soap] 아차! f는 기억이 나는데, m은 ㅜㅜ 감사합니다!!! ^...
[정성태] 'm'은 decimal 타입의 숫자에 붙는 접미사입니다. ...
[정성태] https://lxr.sourceforge.io/ http...
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>docker - OracleXE 컨테이너 실행</h1> <p> 이전(<a target='tab' href='/2/0/12173'>mssql</a>, <a target='tab' href='/2/0/12179'>postgers</a>, <a target='tab' href='/2/0/12177'>mysql</a>)까지의 DB들이 공식 이미지를 제공했던 반면, Oracle의 경우에는 아쉽게도 직접 만드는 방법은 소개해도,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Deliver Oracle Database 18c Express Edition in Containers ; <a target='tab' href='https://blogs.oracle.com/oraclemagazine/deliver-oracle-database-18c-express-edition-in-containers'>https://blogs.oracle.com/oraclemagazine/deliver-oracle-database-18c-express-edition-in-containers</a> Oracle Database on Docker ; <a target='tab' href='https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance'>https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance</a> </pre> <br /> docker hub를 통한 이미지는 제공하지 않습니다. 그래서 개인들이 제작해 올린 것들을 믿고 사용해야 하는데 (또는 직접 제작하거나) 이 글에서는 다음의 이미지를 사용해 보겠습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > oracleinanutshell/oracle-xe-11g ; <a target='tab' href='https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g'>https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g</a> </pre> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > docker pull oracleinanutshell/oracle-xe-11g docker run -p 1521:1521 oracleinanutshell/oracle-xe-11g docker run --name oraclexe1 <span style='color: blue; font-weight: bold'>-d</span> -p 1521:1521 oracleinanutshell/oracle-xe-11g docker run --name oraclexe1 -d -p 1521:1521 <span style='color: blue; font-weight: bold'>--restart=always</span> oracleinanutshell/oracle-xe-11g </pre> <br /> 실행 시 출력도 매우 단순합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Starting Oracle Net Listener. Starting Oracle Database 11g Express Edition instance. (위의 메시지가 나와도 시스템 성능에 따라 초기화까지 더 기다려야 합니다.) </pre> <br /> (<a target='tab' href='https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g'>oracle-xe-11g 컨테이너 페이지</a>에 보면 원격 연결을 위해 "ORACLE_ALLOW_REMOTE" 환경 변수를 설정해야 한다고 하는데 실제로는 굳이 설정하지 않아도 원격 연결이 가능했습니다.)<br /> <br /> 이후 오라클이 배포하는 "<a target='tab' href='https://www.sysnet.pe.kr/2/0/1316#sqldev'>SQL Developer</a>" 등의 도구를 이용해,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > SQL Developer 19.4 Downloads ; <a target='tab' href='https://www.oracle.com/tools/downloads/sqldev-downloads.html'>https://www.oracle.com/tools/downloads/sqldev-downloads.html</a> </pre> <br /> 편안하게 DB 구성을 하시면 됩니다. 기본적으로 인증 정보는 "system" 계정에 대해 동일하게 비밀번호가 "oracle"이므로 연결 정보를 다음과 같은 식으로 입력하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > hostname: localhost port: 1521 sid: xe username: system password: oracle </pre> <br /> (hr 계정은 system으로 로그인 후 "ALTER USER hr IDENTIFIED BY hr2 ACCOUNT UNLOCK;" 등의 명령어로 해제할 수 있습니다.)<br /> <br /> <hr style='width: 50%' /><br /> <br /> <a target='tab' href='https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g'>oracle-xe-11g 컨테이너 페이지</a>에 보면 apex 기능이 8080 포트로 제공되는 듯한데,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > For APEX user: docker run --name oraclexe1 -p 1521:1521 <span style='color: blue; font-weight: bold'>-p 8080:8080</span> oracleinanutshell/oracle-xe-11g # Login http://localhost:8080/apex/apex_admin with following credential: username: ADMIN password: admin </pre> <br /> 재미있는 것은, IE 웹 브라우저로 접속하는 경우에는 동작을 잘 하는 반면, Chrome 브라우저로 접속하면 다음과 같이,<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='oracle_container_xe_1.png' src='/SysWebRes/bbs/oracle_container_xe_1.png' /><br /> <br /> 별도의 "로그인" 창이 뜨면서 지정된 "ADMIN" / "admin" 계정을 입력해도 인증이 안 됩니다. ^^; 암튼 IE로 "Admin" / "admin"을 입력해 들어가면 기본 비밀번호를 바꾼 후 다시 "http://localhost:8080/apex/apex_admin" 페이지를 방문하면 <a target='tab' href='https://www.sysnet.pe.kr/2/0/821#apex'>예의 그 화면</a>으로 넘어갑니다. 이후의 동작은 다음의 글을 참고하시고.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > .NET 응용 프로그램에서 Oracle XE 사용 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/821'>https://www.sysnet.pe.kr/2/0/821</a> .NET 응용 프로그램에서 Oracle XE 11g 사용 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/1316'>https://www.sysnet.pe.kr/2/0/1316</a> ODP.NET의 완전한 닷넷 버전 Oracle ODP.NET, Managed Driver ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/10928'>https://www.sysnet.pe.kr/2/0/10928</a> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 데이터 유지를 위한 볼륨 지정이 딱히 공개되지 않아서 예측을 해야 하는데요. /u01/app/oracle에 매핑하면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > docker run --name oraclexe1 -p 1521:1521 -v <span style='color: blue; font-weight: bold'>oracle11g_root:/u01/app/oracle</span> oracleinanutshell/oracle-xe-11g [<a target='tab' href='https://www.sysnet.pe.kr/2/0/12174#volume'>DockerDesktopVM의 파일 시스템 접근</a>] / # find / -name oracle11g_root /host/var/lib/docker/volumes/oracle11g_root </pre> <br /> 그래도 잘 동작은 했습니다. (더 좋은 매핑 방식을 아는 분은 덧글 부탁드립니다. ^^)<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1718
(왼쪽의 숫자를 입력해야 합니다.)