나는 호스트 시스템을 깨끗하게 유지해야 한다고 굳게 믿습니다. Docker 컨테이너는 이에 대한 완벽한 솔루션입니다. 당신이 Node/Express 백엔드와 DB 요구 사항에 맞는 MySQL 서버를 갖춘 React 앱을 작업하고 있다고 가정해 보겠습니다. 일반적으로 호스트 시스템에 mysql을 설치하고, 데이터베이스를 생성하고, 비밀번호를 사용하여 사용자를 생성하고, 해당 데이터베이스로 작업할 수 있는 사용자 권한을 부여합니다.
모든 단일 프로젝트에 대해 매번 이를 구성하는 데 시간을 낭비하는 대신 Docker 이미지를 사용하여 MySQL 데이터베이스 서버를 생성하고 필요한 모든 설정을 통해 몇 초 안에 준비하고 실행합니다. 필요합니다.
저를 믿으십시오. 이 경로를 사용하여 작업 흐름을 파악하면 결코 이전 방식으로 돌아가지 않을 것입니다. 그래서 여기에 제가 진행하는 방법과 매우 간단하고 기본적인 방법이 있습니다.
Docker에 대한 경험이 있고 이 튜토리얼을 건너뛰고 TLDR 버전으로 직접 시작하고 싶다면 이 Gist가 훨씬 더 빠를 것입니다.
Docker를 사용하려면 Docker가 필요해요! 여기서는 Docker 설치에 대해 자세히 설명하지 않겠습니다. CLI가 익숙하지 않거나 Windows/MacOS를 사용하는 경우 Docker Desktop을 선택하세요. Docker Desktop이 뒤에서 모든 무거운 작업을 대신해 드립니다.
Linux 사용자는 마음에 들지 않으면 Docker Compose 플러그인이나 Docker Desktop을 사용하여 Docker 엔진을 설치할 수도 있습니다.
일반적으로 우리가 사용할 MySQL 공식 이미지와 같은 공개 이미지를 다운로드하기 위해 Docker Hub에 계정이 필요하지 않습니다.
이 작업을 수행하는 방법에는 두 가지가 있습니다.
docker run 명령을 사용하여 컨테이너를 직접 실행하려면 먼저 시스템에 MySQL 이미지를 다운로드해야 합니다. 이미지를 시스템으로 가져오려면 다음 명령을 사용하면 됩니다.
docker pull mysql
참고: 특정 버전의 MySQL이 필요하지 않은 경우 이 명령은 최신 버전(최신 태그가 있는 버전)을 다운로드합니다. 필요한 경우 Docker Hub에서 더 많은 태그와 버전을 탐색할 수 있습니다.
Docker 다운로드가 완료되면 다음과 같이 다운로드한 이미지를 볼 수 있습니다.
docker image ls
이제 컨테이너를 실행하려면 docker run 명령을 사용하여 많은 플래그를 추가해야 합니다. 이 링크를 방문하면 모든 옵션을 확인할 수 있습니다. 또한 일부 플래그가 누락되면 오류가 발생하거나 사용할 수 없는 컨테이너가 시작될 수 있으므로 추가해야 하는 모든 플래그를 기억해야 합니다.
게다가 컨테이너를 실행하려고 할 때마다 터미널 기록에서 이 긴 명령을 찾아내거나 다시 입력해야 합니다. 그럴 필요는 없습니다.
이것이 내가 이 접근 방식을 권장하지 않는 이유입니다. 더 좋은 방법이 있습니다.
컨테이너를 시작하는 동안 필요한 사항을 Docker에 알려주는 Docker Compose 파일을 생성하겠습니다. 모든 것이 파일에 배치되면 컨테이너를 실행하는 것은 매우 쉽습니다.
참고: 어떤 이름으로든 작성 파일을 만들 수 있습니다. 자신의 이름을 사용하거나 작성 파일을 다른 폴더에 저장하는 경우 -f 플래그를 제공해야 작동합니다. 또는 파일과 동일한 폴더에서 명령을 실행하는 경우 파일 이름을 docker-compose.yaml로 지정할 수 있습니다.
Docker Compose 파일은 YAML 파일입니다. 우리의 모습은 다음과 같습니다:
# This Docker Compose YAML deploys a MySQL database services: container-name: image: mysql # Official MySQL image from Docker Hub restart: always environment: # Note - Root password is mandatory for the container to run and grant privileges to our User. MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} # Same name as used in your project # DB User Details MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: # Adjust this port as per your needs ->: - 3308:3306 # DB is available at localhost:3308 on the host. volumes: - ./volumes/db-mnt:/var/lib/mysql
이 파일은 처음에 언급한 Gist에서도 사용할 수 있습니다.
알아두어야 할 중요 사항
Compose 파일이 있는 동일한 폴더에 이 파일을 생성하거나 원하는 위치에 생성할 수 있지만 docker-compose를 호출하는 동안 경로를 제공해야 합니다.
# Content of the Environment Variables file MYSQL_ROOT_PASSWORD=rootpassword MYSQL_DATABASE=nameofdatabase MYSQL_USER=dbusername MYSQL_PASSWORD=dbuserpassword
이 모든 것이 준비되면 간단한 명령 하나만 사용하면 데이터베이스가 작동되어 우리를 기다릴 준비가 됩니다.
docker-compose up -d
이제 원하는 방법을 사용하여 데이터베이스에 연결할 준비가 되었습니다.
그리고 작성 파일에서 실행되도록 컨테이너를 구성했으므로 저장소의 git 시스템에 안전하게 백업할 수 있습니다. .env 파일을 .gitignore로 설정했는지 확인하세요.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3