Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL Docker 컨테이너 생성

<시간/>

Docker Containerization의 가장 중요한 기능 중 하나는 필요한 모든 종속성과 패키지가 설치된 애플리케이션을 실행하기 위한 제한된 환경을 생성한다는 것입니다. 대부분의 애플리케이션에는 데이터 포인트를 저장하기 위한 백엔드 데이터베이스가 필요합니다. Oracle은 컨테이너 내에서 MySQL을 실행하기 위한 Docker 이미지를 제공하므로 데이터베이스 애플리케이션 테스트를 위한 탁월한 선택이 됩니다. 테스트가 완료되면 정리 기능이 있는 경량 MySQL 이미지 인스턴스를 제공합니다.

Docker를 사용하면 MySQL 바이너리 및 종속성을 포함하는 이미지를 다운로드하고 가상 파일 시스템을 생성할 수 있습니다. −−rm 플래그로 Docker 컨테이너를 시작하면 컨테이너를 중지한 후 컨테이너 인스턴스와 함께 전체 파일 시스템이 삭제되므로 이 플래그를 실행 명령과 결합하면 테스트를 위한 자동 정리 기능이 제공됩니다. 신청.

이 기사에서는 애플리케이션 테스트를 위해 MySQL Docker 컨테이너를 생성하는 방법을 살펴보겠습니다.

MySQL용 Docker 컨테이너 생성

아래 명령은 최신 버전의 MySQL 이미지에 대한 인스턴스를 생성하며, −−rm 플래그는 컨테이너가 중지되면 파일 시스템과 함께 컨테이너를 제거하는 데 도움이 됩니다.

sudo docker run −−rm −−name=mysql−test −e MYSQL_ALLOW_EMPTY_PASSWORD=yes −d mysql/mysql−server

위 명령에서 −−rm 플래그는 Docker 데몬이 중지된 후 컨테이너 파일 시스템을 삭제하도록 지시합니다. −−name 플래그는 컨테이너에 이름을 제공합니다. "−e MYSQL_ALLOW_EMPTY_PASSWORD=yes"는 컨테이너에 빈 루트 암호를 생성하도록 지시합니다.

MySQL Docker 컨테이너 실행

MySQL 클라이언트 프로그램은 로컬 소켓 연결을 사용합니다. 즉, 로컬 호스트를 통해 연결합니다. 로컬 MySQL 연결을 생성하려면 다음 명령을 사용할 수 있습니다.

sudo docker exec −it mysql−test mysql −uroot

임원 명령은 Docker 컨테이너 내부에 지정된 명령을 실행하도록 Docker 데몬에 지시합니다. −it 플래그는 대화형 셸에서 컨테이너를 열도록 Docker에 지시합니다. Docker Container 내에서 실행되는 쉘 명령어는 "mysql -uroot"입니다.

TCP/IP를 사용한 클라이언트 액세스

이전 단계에서 명령을 실행하면 Docker가 개인 IP 주소를 Docker 컨테이너에 할당합니다. 또한 시스템에 네트워크 인터페이스를 생성합니다. 이들은 서비스에 대한 TCP/IP 연결을 생성하기 위한 끝점으로 사용할 수 있습니다.

두 끝점 사이에 TCP/IP 연결을 생성하지 않으면 MySQL 서비스에 액세스할 수 없습니다. 그렇게 하려면 시스템과 Docker 컨테이너 인스턴스의 가상 네트워크 인터페이스에 대한 IP 주소를 찾아야 합니다. 아래 명령어를 사용하면 됩니다.

시스템에 있는 네트워크 인터페이스의 IP 주소를 찾으려면 다음을 실행하십시오. -

ip addr show docker0

위의 명령을 사용하여 얻은 IP 주소는 클라이언트 애플리케이션이 연결할 끝점 중 하나가 되며 이를 사용하여 MySQL용 사용자를 생성할 수 있습니다.

MySQL용 Docker 컨테이너 인스턴스의 IP 주소인 다른 끝점을 찾으려면 다음 명령을 사용할 수 있습니다. -

sudo docker mysql−test

이 두 IP 주소를 사용하여 이제 앞으로 이동하여 TCP/IP 연결을 만들고 클라이언트 응용 프로그램을 실행할 사용자를 만들 수 있습니다.

암호 없이 루트 사용자로 로컬 시스템을 만들려면 다음 명령을 사용할 수 있습니다.

시스템 터미널 내에서 mysql-test Docker Container를 실행하여 mysql 쉘에 액세스합니다.

sudo docker exec −it mysql−test mysql −uroot

mysql 셸에 액세스할 수 있게 되면 그 안에서 이 명령을 실행하여 로컬 시스템을 루트 사용자로 생성합니다.

create user root@<virtual network interface IP> identified by '';

위의 명령에 사용된 IP 주소는 이전 단계에서 찾은 로컬 컴퓨터의 가상 네트워크 인터페이스 주소여야 합니다.

위에서 생성한 사용자에게 모든 접근 권한을 부여하려면 이 명령어를 사용하세요.

grant all on *.* to root@<virtual network interface IP> with grant option;

모든 테스트를 수행한 후 자동 정리를 수행하려면 컨테이너를 중지하고 중지를 사용하여 컨테이너를 제거하면 됩니다. 및 rm 명령.

결론적으로 이 기사에서는 MySQL Docker 컨테이너를 생성 및 시작하고 Linux 머신의 가상 네트워크 인터페이스와 Docker 컨테이너 간에 TCP/IP 연결을 생성하여 액세스하는 방법에 대해 논의했습니다. 루트 사용자를 만들고 모든 액세스 권한을 부여했습니다.