일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- kubernetes자동완성
- macm1
- mac m1
- RunContainerError
- 얼굴검출
- #kubernetes
- GPU
- nvidia-docker
- k8s
- Kotlin
- kubectl completion bash
- kotin
- BigSur
- 얼굴분류
- 삶이란...
- Kubernets 이론
- kubernetes
- ₩
- worker node
- kubectl #
- #Kuberspawner
- face verification
- k8s-driver-plugin
- nvidia-container-cli
- 넘무무서웡...
- nvidia-driver-plugin
- Pods Evicted
- k8s-device-plugin
- 코틀린
- k8s고장나면
- Today
- Total
더듬이
[Docker] docker 로 mysql 사용하기 (mac m1에서 docker 사용하기) 본문
1. Docker mysql image 가져오기
아래 명령어 입력시 간단히 msyql docker 이미지를 가져올 수 있다.
기본적으로 docker pull image_name:tag 의 형태로 사용하면 된다.
docker pull mysql
docker pull mysql:5.7
하지만 m1의 경우 아래와 같은 메시지가 뜰 것이다.
m1 노트북을 사용하는 경우에는 아래와 같은 명령어를 통해서 image를 받아오기로하자.
docker run --rm --platform linux/amd64 -it mysql:5.7
맨 밑에 erorr 는 무시하도록하자 사실 위 명령어는 mysql:5.7 이미지를 받아오는 것 뿐아니라 실행시키는 작업까지 포함인데 난 이미지 로드하는데만 사용하겠다.. 이게시글은 m1 아닌사람도 봐야하니깡...
2. 설치된 이미지 실행시키기
아래 명령어를 사용하여 mysql image가 잘 다운받아져 있는지 확인후 실행시킨다.
docker images
- mysql 실행 명령어
docker run \
-p 3306:3306 \
--name mysq-django \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=mysql \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=userpwd \
-v /Users/whatiy/PROJECT/test-example/mysql-data:/var/lib/mysql \
mysql:5.7
- mysql 실행 명령어 (m1)
docker run --platform linux/amd64 \
-p 3306:3306 \
--name mysq-django \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=mysql \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=userpwd \
-v /Users/whatiy/PROJECT/test-example/mysql-data:/var/lib/mysql \
-d mysql:5.7
일반 사용자는 윗 명령어를
m1 사용자는 아랫 명령어를 통해 mysq 을 실행시킨다.
만약 이미 사용하고 있는 mysql DB 데이터가 없는 경우에는 -v 옵션을 사용하지 말 것 => -v사용시 위에 -e 옵션들은 전부 무시된다.
명령어에 옵션들을 간단히 정리하자면
# p : 포트 바인딩
-p <로컬port>:<contaienr 내부 port >
# e : 환경변수설정
-e 변수명=변수값
# v : 볼륨 연결
-v <로컬저장공간>:<컨테이너 내부 저장공간>
# d : 컨테이너 실행을 back그라운드에서 실행
image 이름 전에만 넣으면 된다~
-
아래 명령어를 통해 정상 실행되었는지 확인할 수있다.
만약 아래처럼 했는데 안나오면 docker ps -a 로실행해서 종료 상태인지 확인할 수있고 이경우에는 보통 명령어나 환경 변수가 잘못된 경우 이다.
-a 옵션은 all 을 의미하며 종료된 컨테이너 프로세스 들까지 모두 리스트업 해준다.
이경우 아래 명령어들을 이용해서 원인을 분석할 수있다.
docker ps -a
docker logs <container id>
3. mysql 터미널 접근
아래 명령어 docker exec 를 통하면 container 내부에 명령을 내릴 수있다.
이중 옵션 -i: 상호작용하겟다. -t :tty 사용하겠ㄷ.
를 사용하여 쉘이나 베쉬셀에 접근하면 컨테이너 내부터미널에 접근하는 것처럼 사용할 수있다.
docker exec -it mysq-django /bin/bash
4. docker-compose 이용
매번 아래와 같은 명령어를 치기엔 힘들다 history가 남아있지도 않을수도 있고,,,
docker run --platform linux/amd64 \
-p 3306:3306 \
--name mysq-django \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=mysql \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=userpwd \
-v /Users/whatiy/PROJECT/test-example/mysql-data:/var/lib/mysql \
-d mysql:5.7
그래서 아래와같은 docker-compose.yml 파일을 생성하여 설정들을 기록해놓고 여러 앱들을 한번에 묶어서 실행시키거나 다운시킬 수있다.
위 명령어를 풀어서 사용하면 아래와 같다.
version: '3.8'
services:
django-db:
image: mysql:5.7
container_name: mysql-django
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mysql
MYSQL_USER: user
MYSQL_PASSWORD: userpwd
volumes:
/Users/whatiy/PROJECT/test-example/mysql-data:/var/lib/mysql
platform: linux/amd64
sevices 하위 속성으로 어떤 docker를 띄울 것인지 지정하고 djnago-db 처럼 서비스명을 임의로 지정할 수있다.
또 위에 명령어를 속서에 하나하나 넣어주면 된다.
문법은 생각보다 간단해서 금방 할수있을 것이다.
아래 명령어를 통해 실행시키고
docker-compose up -d
아래와 같이 기본 docker 명령어나 docker-compose 명령어를 통해 확인 할 수있다.
docker ps
docker-compose ps
'Docker' 카테고리의 다른 글
[Docker 자동 tag 만들기 ] 2. git action을 통해 Docker 자동 build push autoTag 하기 (0) | 2022.06.06 |
---|