ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker mariadb 로컬에 디비 연동하기
    Docker 2021. 12. 25. 23:41
    728x90

    개발 환경

     맥북, M1, Monterey

     Docker desktop

     

    도커에 mariadb 설치후 데이터베이스는 로컬(맥 os)과 연동하도록 하자.

    컨테이너를 종료시켜도 디비 자체는 없어지지 않도록 로컬에 연동하는 것이 포인트

     

    #1 docker maria image 가져오기

    docker pull mariadb
    
    Using default tag: latest
    latest: Pulling from library/mariadb
    a39c84e173f0: Pull complete
    19c05479159a: Pull complete
    7a3fae4be7ce: Pull complete
    c6f314de44c1: Pull complete
    37a2529e55ed: Pull complete
    0e027baf10a6: Pull complete
    bba14cc653d8: Pull complete
    9c2ef25d84c3: Pull complete
    1bed92b0fe89: Pull complete
    3f22a51b4300: Pull complete
    Digest: sha256:0f04ae6f30c5a3295fb7cc9be5780c15ff21d6028f999b19f5803114c1e8559e
    Status: Downloaded newer image for mariadb:latest
    docker.io/library/mariadb:latest
    ➜  / docker images
    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    mariadb      latest    7eda4c38372f   6 weeks ago   394MB

     

    #2 docker  컨테이너 실행

    ➜  ~ docker container run -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=1234qwer -v /Users/diaz/database/mariadb:/var/lib/mysql --name mariadb_local mariadb
    0123ba5d5d17a2519f04b3b70f811abdcb31c4c90a30d2300748b3f18eb8e363
    ➜  ~ docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                     NAMES
    0123ba5d5d17   mariadb   "docker-entrypoint.s…"   3 seconds ago   Up 2 seconds   0.0.0.0:13306->3306/tcp   mariadb_local

     

    docker container run -d -p 13306:3306 \
    -e MYSQL_ROOT_PASSWORD=1234qwer \
    -v /Users/diaz/database/mariadb:/var/lib/mysql \
    --name mariadb_local mariadb

    /Users/diaz 에 database 디렉터리 생성 후 해당 경로에 -v 옵션을 통해 디비 연동을 하였다.

     

    #3 docker  연동된 데이터베이스 확인

    ➜  database pwd
    /Users/diaz/database
    ➜  database ls -la
    total 0
    drwxr-xr-x   3 diaz  staff    96 12 25 23:00 .
    drwxr-x---+ 38 diaz  staff  1216 12 25 23:00 ..
    drwxr-xr-x@  2 diaz  staff    64 12 25 23:00 mariadb
    ➜  database cd mariadb
    ➜  mariadb ls -la
    total 0
    drwxr-xr-x@ 2 diaz  staff  64 12 25 23:00 .
    drwxr-xr-x  3 diaz  staff  96 12 25 23:00 ..
    ➜  mariadb ls -la
    total 25520
    drwxr-xr-x@  13 diaz  staff        416 12 25 23:04 .
    drwxr-xr-x    3 diaz  staff         96 12 25 23:00 ..
    -rw-r-----    1 diaz  staff     409600 12 25 23:04 aria_log.00000001
    -rw-r-----    1 diaz  staff         52 12 25 23:04 aria_log_control
    -rw-r-----    1 diaz  staff      16384 12 25 23:04 ddl_recovery.log
    -rw-r-----    1 diaz  staff        942 12 25 23:04 ib_buffer_pool
    -rw-r-----    1 diaz  staff  100663296 12 25 23:04 ib_logfile0
    -rw-r-----    1 diaz  staff   12582912 12 25 23:04 ibdata1
    -rw-r-----    1 diaz  staff   12582912 12 25 23:04 ibtmp1
    -rw-r-----    1 diaz  staff          0 12 25 23:04 multi-master.info
    drwx------   90 diaz  staff       2880 12 25 23:04 mysql
    drwx------    3 diaz  staff         96 12 25 23:03 performance_schema
    drwx------  106 diaz  staff       3392 12 25 23:04 sys
    ➜  mariadb

    mariadb 경로에 아무것도 없다가 도커가 실행된 후 디비 관련 파일이 생성된 것을 확인 할 수 있다.

     

    #4 docker  디비 접속 확인

    sequal pro를 통해 디비 접속을 진행

    #5 docker  컨테이너 접속

    ➜  ~ docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                     NAMES
    0123ba5d5d17   mariadb   "docker-entrypoint.s…"   34 minutes ago   Up 34 minutes   0.0.0.0:13306->3306/tcp   mariadb_local
    ➜  ~ docker exec -it 0123ba5d5d17 /bin/bash
    root@0123ba5d5d17:/# mysql -u root -p
    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 21
    Server version: 10.6.5-MariaDB-1:10.6.5+maria~focal mariadb.org binary distribution
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | apb_local          |
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+
    6 rows in set (0.007 sec)
    
    MariaDB [(none)]>

     

    1. docker ps 명령어로 현재 실행중인 컨테이너 목록을 확인합니다.

    2. container id를 획득

    3. docker exec -it 0123ba5d5d17 /bin/bash 

      -it 과 /bin/bash 옵션을 통해 컨테이너 내부 배쉬 쉘 로 진입

    4. 디비 접속

        mysql -u root 입력 후 패스워드 입력(나의 경우에 1234qwer)

    5. show databases;  통해 데이터베이스 목록 확인

     

     

    728x90

    'Docker' 카테고리의 다른 글

    docker 이미지 파일로 공유  (0) 2022.01.24
    Docker 운영 명령어  (0) 2022.01.19
    Docker Springboot 컨테이너 만들기  (0) 2021.12.25
    docker 컨테이너 접속하기  (0) 2021.08.03
Designed by Tistory.