Docker macOS 설치

W·2024년 1월 17일
0

BackEnd & Devops

목록 보기
9/13

Docker (도커)

Ref.
Docker: Linux에서 SQL Server용 컨테이너 설치 - SQL Server

도커를 왜 사용해야 할까?

EX) 데이터베이스 버전 관리

  • 가상화를 사용하지 않을 때
  1. 개발 환경: 개발자 A는 로컬 컴퓨터에서 MySQL 데이터베이스 버전 5.7을 사용하고 있습니다.
  2. 테스트 환경: 테스터 B는 테스트 서버에서 MySQL 데이터베이스 버전 8.0을 사용하고 있습니다.
  3. 운영 환경: 프로덕션 서버에서는 MySQL 데이터베이스 버전 8.0을 사용하고 있습니다.

이 상황에서는 각각의 환경이 다른 데이터베이스 버전을 사용하고 있어, 다른 버전에서 발생할 수 있는 호환성 문제 등이 발생할 가능성이 있다.

  • 가상화를 사용하는 경우
  1. Docker를 사용: 모든 환경(개발, 테스트, 운영)에서 Docker를 사용하여 MySQL 컨테이너를 실행합니다.
  2. Docker 컨테이너 설정: Docker 컨테이너에는 특정한 MySQL 데이터베이스 버전이 설치되어 있습니다.
  3. Docker 컨테이너 공유: 개발자 A, 테스터 B, 운영팀은 모두 동일한 Docker 컨테이너를 사용하여 각자의 환경에서 MySQL을 실행합니다.

이제, 모든 환경에서는 동일한 MySQL 버전이 사용되므로 버전 간의 호환성 문제를 방지할 수 있습니다. 개발, 테스트, 운영 간의 일관성이 확보되었기 때문에 애플리케이션은 어떤 환경에서도 예상대로 동작할 가능성이 높아집니다.

💡 즉, Docker를 사용하면 애플리케이션이 실행되는 환경을 일관되게 만들 수 있어서 다양한 환경에서의 호환성을 향상시키고, 개발자와 운영팀 간의 협업을 더욱 효과적으로 만들어 준다.

Docker 용어

볼륨(volumes) -> Storage 공유

  • Docker 컨테이너와 호스트(컨테이너를 실행시킨 OS) 간 데이터를 영구적으로 공유하고 저장하는 방법.
  • 연결을 해서 사용하거나, 복사해서 사용한다.

Docker File

  • 폴더별로 Dockerfile 하나씩 컨테이너화하여 관리 가능

dockr-compose.yml

  • 개별적으로 작성해둔 Dockerfile을 한번에 실행하게 해주는 코드파일
  • services에 실행할 컨테이너들의 정보가 들어간다.

MSSQL 실리콘 Mac OS에서 사용하기

  1. Microsoft Container Registry( image 저장소 )에서 이미지 가져오기.
sudo docker pull mcr.microsoft.com/mssql/server:2019-latest

Microsoft SQL Server - Ubuntu based images by Microsoft | Docker Hub

  1. 가져온 이미지로 container를 생성하여 실행하기
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=비밀번호 입력" \
   -p 1433:1433 --name mssql_sever -d \
   mcr.microsoft.com/mssql/server:2019-latest
매개변수설명
-e "ACCEPT_EULA=Y"변수를 ACCEPT_EULA 임의의 값으로 설정하여 최종 사용자 라이선스 계약에 동의했는지 확인합니다. SQL Server 이미지에 필요한 설정입니다.
-e "MSSQL_SA_PASSWORD=YourStrong@Passw0rd"8자 이상이며 암호 정책을https://learn.microsoft.com/ko-kr/sql/relational-databases/security/password-policy?view=sql-server-ver15. SQL Server 이미지에 필요한 설정입니다.
-e "MSSQL_COLLATION=<SQL_Server_collation>"기본값 SQL_Latin1_General_CP1_CI_AS 대신 사용자 지정 SQL Server 데이터 정렬을 지정합니다.
-p 1433:1433호스트 환경의 TCP 포트(첫 번째 값)를 컨테이너의 TCP 포트(두 번째 값)로 매핑합니다. 이 예제에서 SQL Server는 컨테이너의 TCP 1433에서 수신 대기하고 이 컨테이너는 호스트의 TCP 포트 1433에 공개됩니다.
--name 컨테이너명임의로 생성된 컨테이너가 아닌 컨테이너에 대한 사용자 지정 이름을 지정합니다. 둘 이상의 컨테이너를 실행하는 경우 이 동일한 이름을 다시 사용할 수 없습니다.
--hostname 호스트명컨테이너 호스트 이름을 명시적으로 설정하는 데 사용됩니다. 지정하지 않으면 임의로 생성된 시스템 GUID인 컨테이너 ID가 기본값으로 사용됩니다.
-d백그라운드(디먼)에서 컨테이너를 실행합니다.
mcr.microsoft.com/mssql/server:2019-latestSQL Server Linux 컨테이너 이미지입니다.
  1. 실행중인( 생성된 ) 컨테이너를 확인해봅니다.
sudo docker ps -a

주의사항

  1. SA_PASSWORD가 아닌 MSSQL_SA_PASSWORD 사용.

  2. 비밀번호는 대문자, 소문자, 10진수 또는 영숫자가 아닌 기호(특수기호)를 포함하여 최소 8자여야 한다.
profile
타협하는 순간 발전이 없어

0개의 댓글