ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MAC에서 Docker 설치 / oracle 11g 좌충우돌 설치기 [호환이슈] / Docker mysql 설치
    카테고리 없음 2024. 5. 7. 00:46

    현재 나는 MAC Air M2 노트북이다.

     

    오라클 설치 과정이다 다만, 오라클은 엄청난 시간을 소모했다...

    MySql은 진짜 10분 컷이었다.

    혹시 이 글을 보고 따라하게 된다면 삭제를 몇 번 하기 때문에 반드시 끝까지 읽고 따라하시길. 

     

    oracle은 macOS 를 지원하지 않아 Docker 를 통해 설치한다.

    https://docs.docker.com/desktop/install/mac-install/

     

    Install Docker Desktop on Mac

    Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

    docs.docker.com

    Docker Desktop for Mac with Apple silicon 클릭 Docker 뿐만아니라 Docker compose도 설치되었다.

    >docker -v

    >docker compose version

     

     

    https://hub.docker.com/

     

    Docker Hub Container Image Library | App Containerization

    Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

    hub.docker.com

    Docker Hub 를 통해 가입해야 Docker 를 쓸 수 있다.

    가입 후 로그인하자.

    > docker login

     

    실행되고 있는 도커 프로세스 확인 

    > docker ps 

    현재 실행중 프로세스 없음

    오라클11g을 깔아보자

    >docker search oracle-xe-11g

    검색명령어

    starts 추천 수가 가장 많은 oracleinanutshell/oracle-xe-11g를 깔아봐야겠다.  

     

    [참고] Docker 데스크톱에서도 검색 다운 가능해보인다.

    참고

     

    >docker pull oracleinanutshell/oracle-xe-11g 

    설치 명령어

     

    >docker images 

    이미지 : 다운로드된 프로그램

    다운로드된 프로그램 확인 명령어 

    잘 깔렸다. 뿌듯 

     

    > docker run --name oracle_dev -d -p 1521:1521 oracleinanutshell/oracle-xe-11g  

    출처 chat gpt

    • docker run: Docker 컨테이너를 실행하는 명령어입니다.
    • --name oracle_dev: 실행될 컨테이너의 이름을 "oracle_dev"로 지정합니다.
    • -d: 컨테이너를 백그라운드에서 실행합니다 (detached mode).
    • -p 8081:8080: 호스트의 8081 포트를 컨테이너의 8080 포트로 매핑합니다. 이는 호스트에서 Oracle 11g에 접근하기 위한 HTTP 포트를 지정합니다.
    • -p 1521:1521: 호스트의 1521 포트를 컨테이너의 1521 포트와 연결합니다. 이것은 데이터베이스에 접근하기 위한 것으로 보입니다.
    • oracleinanutshell/oracle-xe-11g: 실행할 Docker 이미지의 이름입니다. 이 경우에는 오라클 XE 11g를 실행할 것입니다.

    > docker run --name oracle_dev -d -p 1521:1521 oracleinanutshell/oracle-xe-11g  

    이미 oracle_dev 이름으로 생성된 컨테이너가 있다고 해서

    >docker rm oracle_dev

    제거 후 다시  run 

    >docker run --name oracle_dev -d -p 1521:1521 oracleinanutshell/oracle-xe-11g  

     

     

    ERROR:

    ORA-01034: ORACLE not available

    ORA-27101: shared memory realm does not exist

    Linux-x86_64 Error: 2: No such file or directory

    Process ID: 0

    Session ID: 0 Serial number: 0

     

    기존것을 삭제한다.

    >docker ps

    >>docker rm oracle_dev

    >docker ps 

    >docker images

    >docker rmi 이미지id 

    >docker images

    또한 반드시 docker desktop Containers 와 Images에 설치한 오라클이 있다면 반드시 삭제해야한다! [본문에는 없지만 몇시간 날림]

     

    [Colima]

    Colima는 Docker Desktop을 대신해서 docker 엔진을 실행해주는 역할을 합니다.

    나는 Colima를 설치할 것이다.

    Docker도 Colima도 설치되었으니 colima를 x86_64환경으로 띄어준다.

    > colima start --memory 4 --arch x86_64

    > docker run --name oracle_dev -d -p 8081:8080 -p 1521:1521 oracleinanutshell/oracle-xe-11g  

    > docker ps

     

    >docker logs -f oracle_dev

    sqlplus가 접속이 안된다.

    >docker exec -it oracle-docker sqlplus

     

    삭제하고 다른 oracle-xe-11g인 jaspeen/oracle-xe-11g 설치 시도했다.

    >docker ps 

    >>docker rm oracle_dev

    >docker ps 

    >docker images

    >docker rmi 이미지id 

    >docker images

    반드시 Docker Desktop에도 없는지도 확인해야한다. 있으면 휴지통 누르고 삭제해야한다. 

     

    >docker pull jaspeen/oracle-xe-11g

    > docker run --name oracle-docker -d -p 1521:1521 jaspeen/oracle-xe-11g

    > docker logs -f oracle-docker

    y

     

    접속 

    >docker exec -it oracle-docker sqlplus

    system

    oracle 

    sql 성공  select sysdate from dual; 

     

     

    MYSQL 도 깔아보자!!

    oracle과의 호환성이슈로 인해 colima를 사용하는 것이었으므로 나는 docker desktop으로 관리하고 싶다. 

    다시 docker desktop으로 관리하기위해 colima 종료 

    >colima stop

    mysql 설치해본다. 

    docker search mysql

    docker pull mysql

    docker run --name mysql_docker -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 mysql:latest

    • docker run: Docker 컨테이너를 실행하는 명령어입니다.
    • --name mysql-container: 실행되는 컨테이너의 이름을 "mysql-container"로 설정합니다. 이 이름은 컨테이너를 참조하는 데 사용됩니다.
    • -e MYSQL_ROOT_PASSWORD=1234: 컨테이너 내부에서 사용할 환경 변수를 설정합니다. 여기서는 MySQL 루트 계정의 비밀번호를 설정합니다. 1234 부분을 원하는 비밀번호로 바꿔야 합니다.
    • -d: 컨테이너를 백그라운드에서 실행합니다. 즉, 컨테이너를 백그라운드에서 실행하고 제어를 터미널로 반환합니다.
    • -p 3306:3306: 호스트의 3306 포트를 컨테이너의 3306 포트로 매핑합니다. 이는 호스트에서 MySQL 데이터베이스에 액세스하기 위한 포트를 지정합니다.
    • mysql:latest: 사용할 Docker 이미지입니다. 여기서는 최신 버전의 MySQL 공식 Docker 이미지를 사용합니다.

    >docker exec -it mysql_docker bash

    bash-4.4# mysql -u root -p 

    mysql> show databases

     

    * 참고 유저 만들기  

    생성        mysql> create user 'dev_1234'@'%' identified by '1234';

    권한주기 mysql> grant all privileges on *.* to 'dev_1234'@'%';

    권한적용 mysql> flush privileges;

    *참고 데이터베이스 만들기

    생성           mysql> create database dev_database;

    사용           mysql > use dev_database

     

    dbeaver 열고 연결 root에 아까 설정해준 비번이나 유저 생성한거 입력 

    해당오류는 mysql8부터 난다.

     

    useSSL FALSE 설정 

     

    allowPublicKeyRetrieval TRUE 설정 

     

    데이터 베이스 설정 완료 

     

     

     

Designed by Tistory.