오라클 11g-xe, mssql 2019, mysql 최신버전을 도커에 올려보는걸로 하자.
이유는 간단하다. 운영 배포 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
https://docs.docker.com/desktop/install/mac-install/
이미지명 끝에 태그(:tag) 를 붙이지 않으면 최신 버전으로 받게된다.
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
admin@exoluses-MacBook ~ % docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mysql:latest
293412f5978748a72c56ad8105c3235835093bb09f7e033aa74ad95789d7b551
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
받는 모습은 대충 이렇게 생김.
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
대충 패스워드 문제라는 것... 패스워드는 복잡하게 만들어주자...
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
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
중간의 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
이 모든 것을 작업하는데(설치중 트러블슈팅 등 포함) 20분도 안걸린듯 하다.
꽤 간단하게 처리했고 버전별/프로젝트별 패키지 관리도 좋을 듯 하다.
끗!