[Docker] oracle, mssql, mysql 전부 설치해보자

exoluse·2023년 4월 30일
0

Docker

목록 보기
1/1

최종 목표

오라클 11g-xe, mssql 2019, mysql 최신버전을 도커에 올려보는걸로 하자.

왜 도커에 DB를?

이유는 간단하다. 운영 배포 DB 버전이 제각각일 확률이 높고 그에 맞춰서 서버를 늘릴 수도 없고 더 미치는 것은 환경에 따른 오라클 설치가 좀... 지랄맞아서 한번 해보게 되었다.

이미 설치되어 있는 도커 삭제하기

macos 환경이다 보니 꽤 간단하다.
일단 설치되어 있는 컨테이너부터 삭제...
셋다 정지 상태이다. 아래 명령어로 확인할 수 있다.

% docker ps -a

정지상태의 컨테이너 출력

CONTAINER ID   IMAGE                                        COMMAND                  CREATED        STATUS                      PORTS     NAMES
7a3e55db9fec   jaspeen/oracle-xe-11g                        "/entrypoint.sh "        10 hours ago   Exited (137) 10 hours ago             oracle11g-container
fd077c6791b6   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   10 hours ago   Exited (0) 10 hours ago               mssql-container
9e0fc652cf0d   mysql:latest  

컨테이너 삭제

아래 명령어로 컨테이너 삭제가 가능하다.
삭제된 id가 표시되며 흔적도 없이 처리된다. 이렇게 나머지 2개도 삭제해 보겠다.

% docker rm [컨테이너 id]

컨테이너 삭제 다 됨

자 이제 컨테이너 삭제는 되었고...

이제 이미지 삭제다

도커 이미지 확인

% docker images
REPOSITORY                       TAG           IMAGE ID       CREATED       SIZE
mysql                            latest        8189e588b0e8   12 days ago   564MB
mcr.microsoft.com/mssql/server   2019-latest   866fb82d305d   3 weeks ago   1.47GB
jaspeen/oracle-xe-11g            latest        52fbd1fe2d7a   7 years ago   792MB

도커 이미지 삭제

일단 mysql을 지워보겠다. 잘 지워진 모습... 나머지 2개도 다 삭제하겠다.

admin@exoluses-MacBook ~ % docker rmi [이미지id]
Untagged: mysql:latest
Untagged: mysql@sha256:a43f6e7e7f3a5e5b90f857fbed4e3103ece771b19f0f75880f767cf66bbb6577
Deleted: sha256:8189e588b0e8fcc95b0d764d6f7bdb55b5b41e9249157177d73781058f603ca9
Deleted: sha256:48c450c06ed83938e899fb0b77b2e9e35094015b503bb5e88de6c2d93f445241
Deleted: sha256:c5d77efb49ec3a7a74ab898b9da9217ec78fa9bee47018409025467611d60329
Deleted: sha256:de0c00e28b37cc33347f02709e0a6a2f17637b1e761fb96616861ed345bd34f6
Deleted: sha256:cc635684e233946f93fe008e0322c86e15cbb97b56c58d269a5f8f9da15d973d
Deleted: sha256:0b795b85d567512d79a544b1b74f21108339156cbbc78d16921e96a2a69f687b
Deleted: sha256:16e250c36f4c0e1085512653edd47fd03b60d230ddb575aabc8eb224d96e668f
Deleted: sha256:d023b92a46a5fa8fa8d54387e6d3cb0c73997fefc64ec9000eab0ee1c550ef45
Deleted: sha256:f1c1643119168a94089eab1c9126cda0ee6056a4bb4b18e27a7dcacdf4823972
Deleted: sha256:b147319dd21e8994e6d2fb3bb58a8278c5a72f39488e1f1cff94fc73f1089eb9
Deleted: sha256:ff7c2b28c0dfaa63d0d30b7a5069bf526b0f6492143110381351bbf7d07b4baf
Deleted: sha256:caefa4e45110eab274ebbdbc781f9227229f947f8718cee62ebeff1aac8f1d5b

도커 삭제... 는 안하고 넘어가겠다. 다운로드 URL은 여기에... 귀찮음

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

이미지 다시 받고 설치하기

이미지명 끝에 태그(:tag) 를 붙이지 않으면 최신 버전으로 받게된다.

mysql 이미지 받기

admin@exoluses-MacBook ~ % docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
328ba678bf27: Pull complete 
f3f5ff008d73: Pull complete 
dd7054d6d0c7: Pull complete 
70b5d4e8750e: Pull complete 
cdc4a7b43bdd: Pull complete 
a0608f8959e0: Pull complete 
5823e721608f: Pull complete 
a564ada930a9: Pull complete 
539565d00e89: Pull complete 
a11a06843fd5: Pull complete 
92f6d4aa041d: Pull complete 
Digest: sha256:a43f6e7e7f3a5e5b90f857fbed4e3103ece771b19f0f75880f767cf66bbb6577
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest

mysql 간단 설정 및 실행

admin@exoluses-MacBook ~ % docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mysql:latest
293412f5978748a72c56ad8105c3235835093bb09f7e033aa74ad95789d7b551

mssql 이미지 받기

admin@exoluses-MacBook ~ % docker pull mcr.microsoft.com/mssql/server:2019-latest
2019-latest: Pulling from mssql/server
6e66059d3f09: Pull complete 
0350df93555e: Pull complete 
bda324a2f0a3: Pull complete 
Digest: sha256:5e67a797c69eba6382b1edd34de711cc03d4347dabefcc5a14fbca71e8214315
Status: Downloaded newer image for mcr.microsoft.com/mssql/server:2019-latest
mcr.microsoft.com/mssql/server:2019-latest

받는 모습은 대충 이렇게 생김.

mssql 설정 및 실행

admin@exoluses-MacBook ~ % docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=password' -p 1434:1434 --name mssql-container -d mcr.microsoft.com/mssql/server:2019-latest
3949714262c4af39cf75bae56b3ae5d10c5bd9ed7d18b72253988fc72475e97b

mssql 컨테이너가 시작하자마자 죽는다...

대충 패스워드 문제라는 것... 패스워드는 복잡하게 만들어주자...

2023-04-30 02:08:19.54 spid11s     ERROR: Unable to set system administrator password: Password validation failed. The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols..
2023-04-30 02:08:19.56 spid11s     An error occurred during server setup. See previous errors for more information.
2023-04-30 02:08:19.57 spid11s     SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
2023-04-30T02:08:19.866236502Z 

oracle 이미지 받기

admin@exoluses-MacBook ~ % docker pull jaspeen/oracle-xe-11g
Using default tag: latest
latest: Pulling from jaspeen/oracle-xe-11g
Image docker.io/jaspeen/oracle-xe-11g:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
863735b9fd15: Pull complete 
4fbaa2f403df: Pull complete 
44be94a95984: Pull complete 
a3ed95caeb02: Pull complete 
05b9ddeb40d9: Pull complete 
b44894d2d2af: Pull complete 
1492d1fc5b9f: Pull complete 
c0f3c6ec8986: Pull complete 
fbfc89a21b1b: Pull complete 
740047056d21: Pull complete 
Digest: sha256:0a4b0456cd5be4982ab28ca9426672acee6d90734873d15124698c5c07055aa9
Status: Downloaded newer image for jaspeen/oracle-xe-11g:latest
docker.io/jaspeen/oracle-xe-11g:latest

oracle 컨테이너 띄우기

중간의 8888포트는 아마 어드민 웹 포트인 듯 하다.

admin@exoluses-MacBook ~ % docker run --name oracle-container -d -p 8888:8888 -p 1521:1521 jaspeen/oracle-xe-11g 
0400c35cfb7b2978c554c6a93989a5de7b7431d421e9d5979e3a32431ba9f465

얼추 다 된거 같으니 확인

admin@exoluses-MacBook ~ % docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS                     PORTS                                                      NAMES
0400c35cfb7b   jaspeen/oracle-xe-11g                        "/entrypoint.sh "        2 minutes ago    Up 2 minutes               0.0.0.0:1521->1521/tcp, 0.0.0.0:8888->8888/tcp, 8080/tcp   oracle-container
3949714262c4   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   7 minutes ago    Exited (1) 7 minutes ago                                                              mssql-container
293412f59787   mysql:latest                                 "docker-entrypoint.s…"   13 minutes ago   Up 13 minutes              0.0.0.0:3306->3306/tcp, 33060/tcp                          mysql-container

DB 클라이언트로 확인

마치며

이 모든 것을 작업하는데(설치중 트러블슈팅 등 포함) 20분도 안걸린듯 하다.
꽤 간단하게 처리했고 버전별/프로젝트별 패키지 관리도 좋을 듯 하다.

끗!

0개의 댓글