
docker pull mongo
몽고db는 도커hub에서 확인 가능
docker images
다운로드 한 도커 이미지를 확인한다.

몽고 db docker 컨테이너 생성 및 실행
참고
https://poiemaweb.com/docker-mongodb
docker run --name mongodb-container -v /root/data:/data/db -d -p 26697:27017 mongo
현재 가용가능한 포트가 한정되어있어 26697 포트로 몽고db 컨테이너를 열게되었다.
sudo lsof -i:26697
26697포트를 점유하고 있는 프로세스를 확인
sshd만 점유하고 있기때문에 해당 프로세스를 죽여준다.
sudo kill 14503 (PID)를 이용하여 kill

(base) [root@localhost ~]# docker run --name mongodb-container -v /root/data:/data/db -d -p 26697:27017 mongo
2b1a50b976ff1f019b8f38b6762cb9582114e5ea87c8bc0b56af90acd63c8a39
--name mongodb-container 도커이미지를 만드는데 몽고디비컨테이너라는 이름으로 만든다.-v /root/data:/data/db : 마운트를 연결해준다. 이작업을 하지 않으면 도커에서 실행한 내용들이 도커가 삭제되면서 사라지게된다. (도커에서는 ~ 과같이 홈을 인식하지 못하기때문에 전체 경로를 입력해줘야한다.)
몽고 db 5+ 는 AVX지원을 해야하는데 해당 서버에서는 없기에 사용이 불가능하다...고 생각했는데

cat /proc/cpuinfo 를 이용해서 확인한 결과 가능한것으로 보인다..
그럼 뭐가 문제인가?
몽고db 공식사이트를 본다.
https://www.mongodb.com/docs/manual/administration/production-notes/#x86_64
https://jira.mongodb.org/browse/SERVER-54407
https://www.mongodb.com/community/forums/t/mongodb-5-0-cpu-intel-g4650-compatibility/116610/2
https://github.com/docker-library/mongo/issues/485#issuecomment-891991814

설명대로 glibc를 업데이트해본다.
-> 실패..
docker run -d -p 26697:3306 -e MYSQL_ROOT_PASSWORD=[패스워드] --name [이름] -v /root/mysql/data:/var/lib/mysql mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
일단 db를 만들어보는게 중요하다고 판단하였기에 mysql로 시도하고 이후에 mongodb를 시도하도록한다...
WARNING: MongoDB 5.0+ requires a CPU with AVX support, and your current system does not appear to have that!
해당 서버에서는 몽고db 5.버전부터 필요한 기능을 지원하지 않음으로서 발생하는 문제였다.
따라서 4.버전을 설치한다.
→ 아직 ACID하지 않을 때도
Single-Document Transaction을 제공하고 MongoDB 4.0부터는Multi-Document Transaction을 제공함으로서 ACID를 충족했다.
이후 MongoDB 4.2에서Shard Cluster Transacion을 제공하면서 분산 트랜젝션까지 가능해졌다.
따라서 4.2버전을 사용하도록 한다.
MONGODB 컨테이너 설치

docker pull mongo:4.2
docker run -d --name mongodb -p 26697:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root mongo:4.2
(몽고 4.2버전을 몽고db라는 이름으로 26697포트에서 실행한다.)
docker start mongodb 방금 만든 도커를 실행한다.
docker exec -it mongodb /bin/bash : 몽고db 컨테이너에 접속해본다.

docker exec -it mongodb mongo -u root -p root --authenticationDatabase admin
show dbs

잘 접속이 된다.