docker

[docker] mariadb image 찾아 다운로드 하여 컨테이너 만들기 및 실행하기

Jenny376 2023. 3. 9. 22:35
안녕하세요. hia의 개발 story입니다.

 

지난번에는 직접 도커 이미지를 만들어서 컨테이너화 시켜보았습니다.

 

[docker] docker로 이미지 만들기

안녕하세요. hia의 개발 story입니다. 오늘은 도커에 대한 글을 써볼까 합니다. 이전에 맥북에서 oracle을 사용하기 위해 docker를 사용했던 적이 있습니다. 그때는 아무것도 모르는 채로 맥북에서 사

hia376.tistory.com

이번에는 도커 이미지 중 mariadb를 찾아서 image를 다운로드하여 컨테이너화 해보겠습니다. 

 

docker search, pull, images 명령어 

 

docker에서 이미지를 검색하기 위한 명령어는 docker search [검색어]입니다. 

docker search mariadb

 

그러면 아래와 같이 여러가지의 mariadb 이미지들이 보입니다.

이 중에서 저는 가장 처음에 있는 mariadb를 이용하여 설치하려고 합니다. 

받아올 이미지를 결정하였다면 이제 docker pull [이미지명]:[버전정보] 명령어를 입력합니다. 

버전의 경우 생략가능하며 생략하게 되면 가장 최신 이미지를 받아오게 됩니다.

저는 가장 최신 버전의 이미지를 다운로드하도록 하겠습니다.

docker pull mariadb

아래의 명령어를 이용하여 이미지가 잘 다운로드 되었는지 확인할 수 있습니다.

docker images


docker run, ps, exec 명령어

 

이제 다운로드 받은 이미지를 컨테이너화 시킬 것입니다.

docker run 명령어를 이용하는데 이때 여러 옵션값이 있습니다.

-d : 백그라운드에서 실행 

--name :  컨테이너 이름 설정

-p  : 포트 설정( 로컬 환경에서의 포트:컨테이너 안에서의 포트 번호를 입력하면 됩니다. )

        * 이해가 잘 안 될 수 있는데 예를 들어 mariadb의 기본 설정 포트는 3306이고 현재 로컬에서 3306 포트를 사용 중이라면

           어쩔 수 없이 포트를 변경해주어야 합니다. 

           이때 포트를 3307:3306과 같이 지정해 주면 컨테이너 내부에서는 3306으로 로컬에서는 3307로 접근할 수 있게 됩니다.

           이 부분은 더 공부해서 옵션에 대해서는 자세하게 적도록 하겠습니다.

- e :  기타 옵션 - mariadb의 루트 비밀번호를 지정

docker run -d --name [컨테이너이름] -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mariadb

 

run 명령어 실행 이후에 곧장 ps 명령어를 이용하여 생성된 컨테이너를 확인합니다.

docker ps

ps 명령어를 입력했을 때 아무것도 뜨지 않는다면 컨테이너화 된 mariadb가 실행 중이 않을 수 있습니다.

이때는 docker ps -a 명령어를 이용하여 모든 컨테이너를 불러와서 확인합니다.

불러온 컨테이너 아이디로 docker start [CONTAINER ID]를 시도해 보고 잘 되지 않는다면 

docker rm [CONTAINER ID]로 컨테이너를 삭제한 후 다시 docker run을 실행해 보시기 바랍니다. 

 

이제 설치된 mariadb에 접속하여 기본 데이터베이스와 사용자 아이디를 만들어주도록 하겠습니다.

이 때는 docker exec 명령어를 이용하여 실행합니다. 

-it 옵션과 뒤에 /bin/bash를 입력하여 쉘 모드로 실행할 수 있습니다. 

docker exec -it mariadb /bin/bash

 


아래는 실행이 되어 접속된 mariadb의 모습입니다. 

bash 쉘에서 mariadb에 접속을 해보겠습니다. 

password는 maradb 컨테이너를 생성할 때 설정한 비밀번호를 입력합니다. 

mysql -u root -p 

-- 데이터베이스 생성
-- CREATE DATABASE [데이터베이스이름];
CREATE DATABASE project;

-- 사용자 생성
-- CREATE USER '[사용자명]'@'[접속 url]' identified by '[비밀번호]';
-- 어디서나 접속 가능한 사용자 만들기 
CREATE USER 'jenny'@'%' identified by '1111';

-- 사용자에게 특정 데이터베이스의 권한 부여
-- GRANT ALL PRIVILEGES ON [데이터베이스].* to '[사용자명]'@'[접속 url]';
GRANT ALL PRIVILEGES ON project.* to 'jenny'@'%';

 

이제 설치된 mariadb를 이용하여 작은 프로젝트를 하나 진행하려고 합니다. 

docker에 대한 개념은 더 공부하고 정리해서 글로 적을 예정입니다. 

'docker' 카테고리의 다른 글

[docker] docker로 이미지 만들기  (1) 2023.01.09