본문 바로가기
IT-개발

mariaDB official image 사용하기 (for docker)

by 로데안 2024. 7. 1.
컨테이너에 물개를 넣는 법(아님)
prologue
특별히 정리한 이유는?
> 머릿속을 비우기 위해서..? 세팅은 한 번 하고 나면 다시 하는 기회가 적기 때문에 정리를.
docker에 돌리는 mariadb 이지만
standalone으로 사용하는 것처럼.

 
관련 글 참조 :
2024.06.17 - [IT-개발] - docker - Docker 설치 (ubuntu)
 

Image Pull (Docker)

 
도커를 설치하는 내용을 정리하면서 간단하게 Docker image를 pull은 했지만
자세한 설명은 적지 않았었습니다.
mariadb 컨테이너를 생성하는 과정을 짧게나마 정리를 해두려고 합니다.
 
명령어는 아래와 같이 사용할 수 있습니다.

#관리자 권한으로 실행(execute in administrator authorize)

$ docker pull {이미지명}:{이용가능 버전}

# e.g.) $ docker pull mariadb:11.4.2
더보기

$ sudo docker pull mariadb:11.4.2

11.4.2: Pulling from library/mariadb
00d679a470c4: Pull complete
5eddd2b094bc: Pull complete
c7bae458de01: Pull complete
60fd58cc8d1b: Pull complete
b44b62991c05: Pull complete
f5dedb1c2846: Pull complete
fa481306a939: Pull complete
689797659655: Pull complete
Digest: sha256:934277de8883c061e32a21d01c64973b28272b441a3f797faf189c045a7c0a51
Status: Downloaded newer image for mariadb:11.4.2
docker.io/library/mariadb:11.4.2

위 와 같은 메시지를 남기면서 이미지를 받아왔습니다.
이러면 이미지는 다 받았네요.
 
 

MariaDB 컨테이너 생성하기

 
사실 도커에 대한 이해가 높지 않아서 GUI 환경에서 run명령어를 실행하고
그 명령어를 추출한 후에 수정해서 사용했었습니다.
 

$ docker run --detach --name {컨테이너 이름 입력} 
			--env MARIADB_ROOT_PASSWORD={root 계정 비밀번호}
            -v {docker밖 저장소의 DB 저장 경로}:/var/lib/mysql
            -v {docker밖 저장소의 config 저장 경로}:/etc/mysql/conf.d 
            -p {docker 외부에서 접속할 port 번호}:{mariadb의 port, 아래 --port에서 지정한것과 동일하게 지정, 기본값 3306}
            -d {이미지 지정 e.g.)mariadb:11.4.2}
            --port={mariadb의 port 기본값:3306}

e.g.) $ sudo docker run --detach --name mariadb-11.4.2 --env MARIADB_ROOT_PASSWORD=1234 -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -p 33006:3306 -d mariadb:11.4.2 --port=3306
6716513832d7.....(생략)

 
설명을 곁들이자면
--name : 컨테이너명은 [mariadb-11.4.2]
--env : root의 비밀번호는 [1234] (docker 이미지에 있는 설정)
-v : docker 밖의 볼륨을 가상화 [/data/mysql/datadir] => /var/lib/mysql <-도커 내 경로 
[/data/mysql/conf.d] => /etc/mysql/conf.d <- 도커 내 경로
(이유 : 컨테이너를 제거해도 유지하기 위해)
-p : docker의 포트 포워딩 {외부 포트}:{도커 내부 포트}
-d : 컨테이너에 쓰일 이미지 및 버전 지정
--port : mariadb이미지에서 mariadb 실행할 때 쓰는 인자
 
아래 내용은 컨테이너 생성 후
도커 밖에서 데이터 경로에 접근했을 때 디렉터리입니다.

/data/mysql$ cd datadir/
/data/mysql/datadir$ ll
total 158452
drwxr-xr-x 5 dnsmasq systemd-journal      4096 Jun 10 06:04 ./
drwxr-xr-x 4 root    root                 4096 Jun 10 06:02 ../
-rw------- 1 dnsmasq systemd-journal       132 Jun 10 06:04 .my-healthcheck.cnf
-rw-rw---- 1 dnsmasq systemd-journal   4890624 Jun 10 06:04 aria_log.00000001
-rw-rw---- 1 dnsmasq systemd-journal        52 Jun 10 06:04 aria_log_control
-rw-rw---- 1 dnsmasq systemd-journal         9 Jun 10 06:04 ddl_recovery.log
-rw-rw---- 1 dnsmasq systemd-journal       706 Jun 10 06:04 ib_buffer_pool
-rw-rw---- 1 dnsmasq systemd-journal 100663296 Jun 10 06:04 ib_logfile0
-rw-rw---- 1 dnsmasq systemd-journal  12582912 Jun 10 06:04 ibdata1
-rw-rw---- 1 dnsmasq systemd-journal  12582912 Jun 10 06:04 ibtmp1
-rw-r--r-- 1 dnsmasq systemd-journal        14 Jun 10 06:04 mariadb_upgrade_info
-rw-rw---- 1 dnsmasq systemd-journal         0 Jun 10 06:04 multi-master.info
drwx------ 2 dnsmasq systemd-journal      4096 Jun 10 06:04 mysql/
drwx------ 2 dnsmasq systemd-journal      4096 Jun 10 06:03 performance_schema/
drwx------ 2 dnsmasq systemd-journal     12288 Jun 10 06:03 sys/
-rw-rw---- 1 dnsmasq systemd-journal     24576 Jun 10 06:04 tc.log
-rw-rw---- 1 dnsmasq systemd-journal  10485760 Jun 10 06:04 undo001
-rw-rw---- 1 dnsmasq systemd-journal  10485760 Jun 10 06:04 undo002
-rw-rw---- 1 dnsmasq systemd-journal  10485760 Jun 10 06:04 undo003

 
[컨테이너 생성 후 환경 변수 변경 관련 글]
2024.06.24 - [IT-개발] - docker - Edit Container Environment Variables
 

epilogue
DB를 PC밖으로 빼놓으니 편하네요..
개발을 안 하게 됩니다..(?)

 
 

반응형

'IT-개발' 카테고리의 다른 글

docker - Edit Container Environment Variables  (0) 2024.06.24
docker - Docker 설치 (ubuntu)  (1) 2024.06.17
ubuntu - Ubuntu 24.04 server install  (1) 2024.06.14