개발은 재밌어야 한다
article thumbnail
반응형

 

 

안녕하세요 이번에는 도커 설치법 및 사용에 대한 포스팅을 해볼까 합니다.

https://dreamcoding.tistory.com/61

 

버추얼박스(VirtualBox) 설치 및 구동 (CentOS 8 버전)

1. 가상 머신(VM) 환경 구축하기 VM에는 버추얼박스(VirtualBox)와 VMware Workstation의 방식이 있는데 제가 사용하는 방법은 오라클(Oracle)의 버추얼박스를 통해서 리눅스 환경을 구축 하겠습니다. https://w

dreamcoding.tistory.com

일전에 Virtual Box로 가상 머신을 통해서 리눅스를 사용하는 방법에 대해 포스팅을 한 적이 있는데요

리눅스를 사용하는 이유로는 뭐 다양한 이유가 있겠지만 서버환경을 통해 원하는 서버를 구축하는데에 사용하는데 있어서 사용하게 됩니다.

 

오늘날에는 docker를 통해서 손쉽게 원하는 이미지 docker-hub를 통해 다운 받아 컨테이너를 통해서 이를 쉽게 사용하고 관리 할 수 있는데요

 

우선 docker를 설치해서 사용해보도록 하겠습니다.

https://www.docker.com/get-started

 

Get Started with Docker | Docker

Learn about the complete container solution provided by Docker. Find information for developers, IT operations, and business executives.

www.docker.com

위의 docker 공식사이트를 통해서 원하는 운영체제에 맞는 docker를 설치 해보겠습니다.

저는 윈도우이므로 윈도우용 도커 데스크탑을 다운 하였습니다.

다운받은 파일을 실행해주시면 설치가 진행됩니다.

재시작을 해야합니다..

재시작을 하고 도커 데스크탑을 실행해보도록 하겠습니다.

간단히 뭐 동의하는지 여부를 묻는데 accept하고 넘어가줍니다.

자.. 재시작하니 사용할 줄 알았는데  WSL 2 installation is incomplete라는 문구가 뜨면서 WSL 2가 설치가 필요하다고 하네요

https://docs.microsoft.com/ko-kr/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

 

이전 버전 WSL의 수동 설치 단계

wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다.

docs.microsoft.com

여기에서 수동 설치에 대한 단계를 안내해주는 링크가 걸려있습니다.

우선 윈도우 파워쉘을 관리자 권한으로 실행해줍니다.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

위의 명령어를 복붙해서 실행해주세요.

그 다음 해당상태에서 아래 명령어를 복붙해서 실행해줍니다.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

 

그 다음 아래 링크로 다운로드를 합니다.

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

 

금방 설치가 완료 되었습니다.

 

그다음 다시 PowerShell로 돌아 아래의 명령어를 입력해줍니다.

wsl --set-default-version 2

자 이제 오른쪽 하단에 도커를 우측클릭해서 도커를 재시작 해보겠습니다.

자 정상적으로 도커가 실행 되었습니다. 

 

간단하게 도커를 사용해볼까요?

Mysql을 도커에 올려서 사용해보도록 하겠습니다.

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

도커허브에는 여러가지 도커의 이미지들을 사용할 수 있습니다.

보시는것 처럼 마리아 DB나 MySQL을 공식적으로 지원을 하고 있습니다.

보시면 Mysql에 대한 이미지를 받을 수 있는 명령어를 볼 수 있습니다.

 

태그를 보면 별도의 원하는 버전의 MySQL의 이미지를 받아 올 수 있습니다.

저는 그냥 가장 최신 버전의 MySQL을 받아보도록 하겠습니다.

CMD창(명령어프롬프트)를 띄워줍니다.

복사한 MySQL이미지를 Pull(내려받기)를 합니다.

그럼 이렇게 해당 이미지에 대한 다운로드를 진행합니다.

정상적으로 이미지가 잘 다운받았는지 확인해볼까요?

없었던 Mysql이 생겨난 걸 확인 할 수 있습니다.

 

그럼 이 다운로드 받은 이미지로 로컬에 Mysql을 사용할 수 있도록 실행을 해보도록 하겠습니다.

 

CMD 명령어 창에 아래와 같이 입력을 해보도록 하겠습니다.

docker run --name [컨테이너이름] -e MYSQL_ROOT_PASSWORD=[패스워드] -d -p [원하는포트]:13306 mysql:[이미지버전]

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=testpassword -d -p 13306:13306 mysql:latest

 

 

여기서 mysql-container는 컨테이너에 할당하려는 이름이고 testpassword는 MySQL 루트 사용자에 대해 설정할 비밀번호이며 13306:13306은 포트를 사용할떄 내부의 포트와 외부의 포트를 나타내는 부분입니다. 기존의 mysql이 3306이여서 충돌 할 수 있어서 해당 포트로 실행하겠습니다.

 

CMD창에 입력을 하여 실행을 합니다.

그럼 아래와 같이 문자들이 나오면 정상적으로 구동이 된겁니다.

 

도커 허브로 들어가보면 IN USE라고 사용중이라는 표시가 나와있는것을 확인 할 수 있습니다.

컨테이너에서도 보면 지정해준 mysql-container라는 컨테이너 이름으로 mysql이 정상적으로 RUNNING 하는 것을 확인 할 수 있습니다.

 

그럼 구동한 Mysql에 접속을 해볼까요?

위에서 testpassword라는 루트 사용자의 패스워드를 지정을 하였으니 로컬호스트로 root사용자의 testpassword비밀번호로 접속을 해보도록 하겠습니다.

 

 

아래의 명령어를 cmd에 입력해서 MySQL Docker 컨테이너 접속하도록 하겠습니다.

docker exec -it mysql-container bash

컨테이너 안으로 진입했습니다.

아래를 입력해줍니다.

mysql -u root -p​

그럼 비밀번호를 입력하라는 창이 나오는데 testpassword를 입력해줍니다.(입력한게 안보입니다.)

그럼 이제 mysql 에 진입한것을 볼 수 있습니다

 

추가로 외부에서 접속할 수 있도록 하는 유저권한에 대한 설정입니다.

 

사용자 권한 설정

mysql> grant all privileges on dbname.table to userid@host identified by 'password';

모든 db 및 테이블에 접근권한 설정

mysql> grant all privileges on *.* to userid@host identified by 'password';

모든 db 및 테이블에 권한을 주고 로컬 및 리모트에서도 접속가능하도록 설정

mysql> grant all privileges on *.* to userid@'%' identified by 'password';

설정한 권한 적용 (반드시 해야 적용이 된다.)

mysql> flush privileges;

 

 

 

간단하게 이런식으로 docker로 mysql을 사용해 보았는데요.

이런식의 docker사용은 불편하여서 docker-compose파일로써 도커를 관리하여 사용하게 되는데 기회가 되면 해당 부분에 대해서도 포스팅 해보도록 하겠습니다.

반응형
profile

개발은 재밌어야 한다

@ghyeong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!