컨테이너 기술/Docker 적용

Mysql을 docker를 통해 구축하고 토이프로젝트에 적용해보기(1)

__James__ 2022. 6. 3. 01:42
반응형

docker hub에 들어가 mysql이미지를 확인한다.


docker pull mysql명령어 뒤에 tag에 버전을 지정해주지않으면 최신버전의 이미지를 docker hub에서 받아옵니다.

docker pull mysql

이미지를 받아온 것을 docker images명령어로 볼 수 있습니다.

docker images

받아온 이미지를 가지고 컨테이너를 생성하고 실행해보자

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<루트계정 비밀번호설정> --name <사용자 지정 이름> --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

위의 명령어는
-d옵션을 통하여 백그라운드에서 실행시키고
-p 옵션을 통하여 포트포워딩을하고
-e 옵션을 통해 환경변수를 설정하고
--name을 통해 컨테이너 이름을 정하고
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 을 통해 utf-8로 지정해 준다는 명령어를 작성했는데 오류가 생겼습니다.

그래서 알아보니 도커가아닌 mysql 서비스에 바로 전달해야하기 때문에 이미지이름 뒤에  --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 이것을 넣어야 되는 해결 방법이 있었습니다.

docker run --name <설정하고싶은 이름> -e MYSQL_ROOT_PASSWORD=<설정하고싶은 비밀번호> -p 3306:3306 -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

해결방법을 적용하니 컨테이너가 잘생성 되고 실행이 됐습니다.

docker ps

docker ps 명령어로 실행중인 컨테이너 목록을 확인해보니

잘 실행되는 것을 확인할 수있습니다.

내가 생성하고 실행시킨 mysql docker 컨테이너에 접속해보자

docker exec -it <컨테이너이름> bash

를 통해 컨테이너에 접속하고 mysql -u root -p 명령어로 mysql에 root계정으로 접속하면 잘 되는 것을 확인할 수 있습니다.

mysql -u root -p

토이프로젝트랑 테스트 연결을 할 데이터베이스를 생성해주자

mysql모듈을 설치하고

const connection = mysql.createConnection({
	host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '비밀번호',
	database: 'TEST_DB'
});


connection.connect(function(err){
if(!err) {
    console.log("Database is connected ... \n\n");
} else {
    console.log("Error connecting database ... \n\n");
}
});

실행했는데 컨넥션에 실패했습니다
다음 글은 이 오류를 해결하는 글을 쓰겠습니다.ㅠ


참고
- https://hub.docker.com/_/mysql
-https://stackoverflow.com/questions/54199358/mysql-6-5-docker-run-unknown-flag-character-set-server

Mysql - Official Image | Docker Hub

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com