https://hub.docker.com/editions/community/docker-ce-desktop-mac
아래와 같이 더 자세히 옵션을 추가할 수 있다.
-d 옵션
컨테이너가 detached 모드에서 실행되며, 실행 결과로 컨테이너 ID만을 출력
-p 옵션
호스트와 컨테이너 간의 포트 배포와 바인드를 위해 사용됨. 호스트 컴퓨터에서 컨테이너에서 리스닝하고 있는 포트로 접속할 수 있도록 설정해줌.
--name 옵션
컨테이너에 이름 부여
-e 옵션
컨테이너의 환경변수를 설정
mac M1 칩의 경우 다음과 같은 에러가 난다.
> docker container run -d -p 3306:3306 mysql
Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
docker: no matching manifest for linux/arm64/v8 in the manifest list entries.
See 'docker run --help'.
❗️ platform 이 linux/amd64 임을 명시하여 에러를 해결한다.
> docker container run -d -p 3306:3306 --platform linux/amd64 mysql
1️⃣ 컨테이너를 실행할 폴더를 생성
> cd Documents
> mkdir docker_db
> cd docker_db
2️⃣ vi 에디터를 열어 docker-compose.yml에 다음 내용 저장
> vi docker-compose.yml
version: "3.7" # 파일 규격 버전
services: # 이 항목 밑에 실행하려는 컨테이너들 정의 ( 컴포즈에서 컨테이너 : 서비스 )
db_mysql: # 서비스 명
platform: linux/x86_64 # Mac m1 칩인 경우 platform을 명시해줍니다.
image: mysql:5.7 # 사용할 이미지
restart: always
command: --lower_case_table_names=1
container_name: db_mysql # 컨테이너 이름 설정
ports:
- "3306:3306" # 접근 포트 설정 (컨테이너 외부:컨테이너 내부) <- 컨테이너 내부는 무조건 3306
environment: # -e 옵션
- MYSQL_DATABASE=local
- MYSQL_ROOT_PASSWORD=password # MYSQL 패스워드 설정 옵션
- TZ=Asia/Seoul
command: # 명령어 실행
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
volumes:
- ./data:/var/lib/mysql # -v 옵션 (다렉토리 마운트 설정)
✅ 체크 해두어야 할 사항 ?
-> database 이름은 local
-> ROOT_PASSWORD는 password
3️⃣ docker-compose up 명령어로 컨테이너 실행시키기
> docker-compose up -d
> docker ps
위에서 ✅ 체크한 내용을 바탕으로 아래 내용이 잘 들어왔는지 확인.
DB_PORT=3306
DB_DATABASE=local
DB_USERNAME=root
DB_PASSWORD=password
https://hub.docker.com/_/mysql
들어가서 Environment Variables 여기 봐보길.. 체크해 두어야 할 사항이 더 나올기다