상세 컨텐츠

본문 제목

Docker 설치 및 연결(0510)

NETWORK/docker & 쿠버네티스

by 영공쁘이 2021. 8. 5. 09:07

본문

 

https://docs.microsoft.com/ko-kr/windows/wsl/install-win10

 

Windows 10에 WSL 설치

 

이것을 바탕으로 하여 도커가 돌아갈 수 있는 환경을 마련해준다. 중간마다의 경로가 나오는 것들(경로/코드들)은

복사 눌러서 Windows PowerShell에 넣는다.

 

<celab daum> 이거를 구글에 검색해서 들어가보면 도커의 모든 행동들을 제어할 수 있다. - 첫번째 게시물임

 

 

전체 도커(Docker) 환경

 

 

도커가 있는 전체 시스템 모습(wSL, Hyper-V가 기반인 환경)

 

원래 먼저 wsl이 설치가 된다면 wsl2의 컴포넌트 설정이 되었다는 체크란의 메세지가 있어야 한다.

근데, 학원에서 할 때는 wsl2가 설치 되지 않아서 hyper-v 라도 하라고 체크란에 나오는 것이다.

 

 

명령어 중 부연 설명

 

1) 이미지 다운(sql을 다운한다는 의미, 근데 뜻이 조금 다르다)

> docker pull mysql

도커라는 서버 안에 필요한 프로그래밍을 다운받는 것 (그 중 mysql을 가져온 것)

 

2) mysql 만 있으면 최신 버전이다!

->docker pull 이미지명: tag >> 이미지명(프로그래밍), tag 의 값이 7이면, 프로그래밍의 버전을 나타냄, 만약 아예 없으면 최신 버전임

 

 

3) docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql1(실행 컨테이너명) mysql(이미지명)--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

-> 새로운 걸 만들어서 동작시키는 것(컨테이너를 동작시키겠다.)

 

-d = background service: linux에서는 demon

--name mysql1 : 해당하는 컨테이너(일단 운영체제로 생각하기-운영체제 안에서 돌기 때문)는 바뀔 수 있음!

컨테이너는 여러 개를 만들 수 있음

 

>> mysql(repository의 이름이나, id이름을쓰면 됨)이라는 이미지를 사용하라!

 

 

 

컨테이너 아이디나 이름을 쓰면 됨 ( mysql 자리에!)

 

4) 컨테이너로 진입

> docker exec -it mysql1 bash

-it(대화형 모드(타이핑치고 반응받고 이런거)로 진입한다)

mysql1(컨테이너 이름)로 진입하고

shell은 bash를 통해 들어갈거다!

 

 

bash: 리눅스의 기본 쉘로, 운영 체제와 커널을 이어주는 역할을 한다.(즉, 사용하고자 하는 프로그램에 진입하겠다!)

5) 리눅스 프롬프트

 

 

 

docker exec -it mysql1 bash를 통해 해당 컨테이너에 진입을 하고 리눅스 프롬프트로 mysql의 동작을 어떻게 할 것인지를 나타내는 단계

 

여기서, 파란줄의 #은 손님 계정으로 들어왔다는 뜻(읽기만 가능) ,

$가 들어온다면 최고 계정으로 진입을 하겠다는 뜻(모든 권한을 가졌으니 내 맘대로 하겠다는 뜻)

 

*sudo 명령어 : 나의 명령을 최고 계정으로 인정해줘!<즉, 강제집행>(비록 나는 손님이지만.. ) 대신, 비번을 물어본다!

 

6) mysql 작동하여라

> mysql -u root -p

-u root : ID(user)는 root다.

-p : 비밀번호를 다음에 적어라.

 

7) 동작 순서

 

윈도우 상태다: 리눅스 기반으로 동작(wls2 설치/hyper-V) -> 도커 컨테이너로 진입 -> mysql로 들어가기

-> mysql로부터 나오기 -> 컨테이너로부터 나오기 -> 또 나오면 윈도우로 나오는 것!

 

한마디로, 컨테이너 -> mysql -> 컨테이너 -> 윈도우

 

* 만약, exit안하고 그냥 cmd창을 나와버린 경우, 다시 사용할 때는 start로 시작할 것!(컨테이너에서 특히!)

 

 

여기서 알아야 할 점!

현재 상황은 MYSQL을 깔지 않은 상태이고, 이전에 저장한 db를 가져온 것(아니면, mysql을 찾는 것)

예전에 cmd client - unicode 창으로 db(mysql) 를 만든 적이 있음 그것이 내장되어 나온 것임!

~?(이건 질문해서 알아내자)

 

 

관련글 더보기