
도커는 가장 대중적인 컨테이너 기술로 애플리케이션을 독립적이고 일관된 환경에서 실행할 수 있도록 도와준다.
도커는 컨테이너 격리 기술을 지원한다는 점에서 유사한 가상 머신(Virtual Machine, VM) 과 비교했을 때도 훨씬 가볍고 상태 불변적인 특징을 가진다.
뿐만 아니라 애플리케이션과 의존성을 하나의 이미지로 패키징하기 때문에 로컬 환경, 클라우드, 서버 등 다양한 플랫폼에서 동일하게 동작하여 이식성과 유연성을 가진다.
이외에도 도커 허브(Docker Hub)와 같은 레지스트리를 통해 이미지를 공유하고 재사용할 수 있어, 팀 간 협업을 촉진하며, 커뮤니티가 제공하는 다양한 이미지를 활용해 개발 시간을 단축할 수 있게 해준다.
컨테이너 오케스트레이션 도구인 쿠버네티스(Kubernetes)와의 통합을 통해 대규모 애플리케이션을 손쉽게 확장하고 관리할 수 있게 해준다.
이러한 특징들은 개발과 배포의 전 과정을 간소화해주며, 개발자들은 복잡한 환경 설정에 얽매이지 않고 코딩과 문제 해결에 집중할 수 있다.
이번 포스트에서는 도커를 통해 디비 (MariaDB) 를 실행 및 접근하는 방법에 대해 다뤄 보고자 한다.
docker -v
docker 설치 확인
docker pull mariadb
mariadb 를 실행하기 위한 모든 설치 파일을 pull 받기
✅ 사실 이후 실행할 docker run 명령어가 사용할 이미지가 없으면 자동으로 pull 해주기 때문에 꼭 실행할 필요는 없다.
docker images
mariadb 이미지 생성된 것 확인 가능
여기서 도커 이미지(image)란, 의존성 파일을 컴파일하거나 이것저것 설치할 필요 없는 상태의 불변 파일이다.
docker ps -a
여기서 -a 는 실행 중이거나 그렇지 않은 모든 컨테이너 정보를 확인하는 옵션이다.
그냥 docker ps 만 입력하면 실행 중인 컨테이너 정보만 확인 가능하다.
docker run --name myfirstwebcamp -e MARIADB_ROOT_PASSWORD=1006 -p 3307:3306 -d mariadb:latest
mariadb 이미지에 대하여 컨테이너 생성
여기서 도커 컨테이너(container)란, 이미지를 실행한 상태를 말하며, 컨테이너 삭제 시 해당 컨테이너 내의 데이터는 디비 삭제하면 그 안의 데이터 모두 삭제되듯이 모두 삭제된다고 보면 된다.
위 명령어에 대한 자세한 설명은 아래와 같다.
-name myfirstwebcamp: 컨테이너 이름을 myfirstwebcamp로 설정한다는 의미-e MARIADB_ROOT_PASSWORD=1006: 환경 변수로 MariaDB의 루트 비밀번호를 설정한다는 의미-p <로컬 포트>:3306:<로컬 포트>를 컨테이너 내부의 3306 포트에 매핑한다는 의미3306은 MariaDB가 기본적으로 사용하는 포트 번호이다.<로컬 포트>에 원하는 숫자를 넣으면, 로컬에서 해당 포트를 통해 MariaDB 컨테이너에 접근할 수 있게 된다.-d: 컨테이너를 백그라운드에서 실행한다는 옵션mariadb:latest: 사용할 이미지 이름 및 가장 최신 버전 다운docker start <컨테이너 ID 또는 이름>
컨테이너가 실행 중이지 않은 경우 위 명령어를 통해 실행
docker exec -it myfirstwebcamp mariadb -uroot -p
exec 실행 중인 컨테이너에 접속하거나 컨테이너 내부에서 명령어를 실행한다.it 옵션으로 대화형 터미널로 접속 가능하게 만든다.myfirstwebcamp 컨테이너 내부에서 MariaDB에 접속한다.이렇게 하면 아마 다음과 같은 화면이 표시될 것이다.

이제 SQL 문으로 데이터베이스 생성해주면 된다.
create database <데이터베이스 이름>;
<데이터베이스 이름> 이라는 데이터베이스 생성
show databases;
데이터베이스 생성된 것 확인
exit
대화형 터미널 종료
docker stop <컨테이너 ID 또는 이름>

위에 보이는 파란색 코드 그림에 + 기호 붙어있는 버튼 클릭하면

다음과 같은 화면이 나올 것이다.
여기서 MariaDB 선택해주고 다음 버튼 누르면

다음과 같은 화면이 나올 것이다.
포트 부분에 아까 설정한 로컬 포트 번호를 써주고 데이터베이스 이름과 비밀번호까지 입력해주면 된다.