목표
도커 우분투 이미지로 컨테이너를 생성하고 생성된 이미지에 mongo DB를 설치해 ubuntu:mongodb 이미지를 작성한다.
컨테이너 실행
docker run -it [container] [image]
도커 우분투 이미지를 실행시켜 mongo DB를 설치할 컨테이너를 생성하도록 하자.
docker run -it --name ubuntu_mongo ubuntu /bin/bash
설치 방법
패키지 업데이트
apt-get update
설치에 앞서 패키지 업데이트를 진행한다.
wget 설치
apt-get install wget
도커 이미지의 경우, 리눅스 이미지를 받아오면 wget
명령도 없을 것이다. 없다고 뜨는 것들은 설치한다음 다시 진행해주면 된다.
패키지 매니저 시스템을 사용해 공개키 받아오기
wget -qO -
[https://www.mongodb.org/static/pgp/server-4.4.asc](https://www.mongodb.org/static/pgp/server-4.4.asc)
| sudo apt-key add -
Mongo DB 를 위한 리스트 파일 생성
서비스를 정상동작시키기위해서 본인의 아키텍쳐 시스템을 arch
의 인자로 준 명령을 입력해 리스트 파일을 생성한다.
제대로 받아왔다면 /etc/apt/sources.list.d/
폴더에 mongodb-org-4.4.list
파일이 생기고 그 안에 echo
명령의 인자로 주었던 문자열이 들어가 있음을 볼 수 있다.
패키지 업데이트
apt-get update
몽고디비 설치
apt-get install -y mongodb-org
init 시스템 확인
공식 설치 가이드에서는 사용자의
init system
에 따라 명령이 다르기때문에 먼저 init system을 확인할 것을 당부하고 있다. 따라서 ps --no-headers -o comm 1
명령을 통해서 systemd
와 init
중에서 본인의 init system을 확인하고 몽고디비를 시작해야한다.
-
도커 이미지에서 해당 명령을 실행할 경우,
systemd
나init
이 아닌bash
로 뜬다. 이럴 경우 아래와 같이 파일을 추가해줘야 제대로 동작한다.-
mongodb github(링크)에서 파일의 내용을 복사한다.
-
/etc/init.d/mongod
파일을 만들고 복사한 내용을 붙여넣는다. -
mongod
파일의 권한을chmod 755 mongod
명령을 통해755
로 설정한다.
-
- (추가) 이는 도커가 init process를 실행하지 않기 때문이라고 한다. init process를 추가하고 싶다면 도커 허브에 나와있는 공식 이미지의 사용법을 잘 읽어보자.
몽고디비 시작
디비를 시작하는 방법은 앞서 init system 설정에서 얘기했듯이 두 가지 명령어로 나뉜다.
각 명령어에 따라 인자 순서도 달라지니
반드시 확인하고 실행하도록 하자.
시작
-
systemctl start mongod
- systemctl이 없다면
apt-get install systemctl
로 설치한다.
- systemctl이 없다면
-
service mongod start
상태확인
-
systemctl status mongod
-
service monod status
종료
-
systemctl stop mongod
-
service mongod stop
재시작
-
systemctl restart mongod
-
service mongod restart
systemctl로 실행한 경우
service로 실행한 경우
Mongo Shell 입장
mongo
제대로 설치가 됐다면 mongo
명령을 입력했을때 제대로 쉘이 시작되는 것을 볼 수 있다. 쉘이 시작되지 않고 끝난다면 설치 과정에서 문제가 있었다는 것이므로 다시 설치를 진행하도록 하자.
mongo shell 화면
이미지 생성
docker commit [container] [image]
이제 우분투 이미지로 생성한 도커 컨테이너에 mongoDB 설치가 끝났다. exit
명령으로 컨테이너에서 빠져나와 해당 컨테이너를 이미지화 시켜주면 모든 작업이 끝난다.
docker commit ubuntu_mongo ubuntu:mongodb
아래와 같이 mongo DB가 설치된 이미지를 볼 수 있다.
참조
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
'Develop > Docker' 카테고리의 다른 글
React 앱 배포하기 (feat. Nginx, Docker, AWS) (2) | 2021.03.10 |
---|---|
[Docker] zsh테마가 설정된 이미지 만들기 (feat. commit/Dockerfile) (0) | 2021.02.03 |
[Docker] Dockerfile 명령어 (0) | 2021.02.03 |
[Docker] 명령어 (0) | 2021.02.03 |
[Docker] unminimize Ubuntu (0) | 2021.02.02 |