일단 Docker 를 왜 사용하는 것일까?
예시로,
서비스 A 에서 내가 node.js 버전을 1.0 을 쓴다고 하자
서비스 B 에서는 node.js 버전을 2.0 을 쓴다고 하자
그럼 작업을 하던 와중에 개발환경을 따로 설정해줘야할게 많을 것이고, 오류가 빈번히 일어날 것이다.
그렇다면 서비스 A 를 위한 가상환경을 세팅, 서비스 B 를 위한 가상환경을 세팅한다면?
그러면 컴퓨터 자원을 20%, 30% 씩 따로 할당해줘야하고, 컴퓨터가 갖고 있는 OS 를 충분히 활용하지 못하는 낭비현상이 일어날 것이다
이런 문제를 보완해주는게 "Docker" 이다.
Docker 를 사용하게 되면, 컴퓨터 내에서 꼭 필요한 공간만큼을 차지하게 되고, 각자 자원을 "공유"을 하는 개념이기 때문에 낭비를 줄일 수 있다.
Docker image 는 Docker hub 사이트에 들어가면 다운로드가 가능하다. ex. mysql, node.js 등
그것을 컨테이너화하면 여러가지 프로세스로 진행이 가능하다
예시로, mysql image 를 불러서 실행해보자.
docker --version # 버전체크
docker pull mysql:5.7 # 만약 버전 안쓰면 default 로 최신버전 설치됨
이때 docker 를 활성화 시키지 않으면 실행이 안되고 에러 메세지가 뜬다.
docker run --name <컨테이너이름> -e MYSQL_ROOT_PASSWORD= <비밀번호쓰기> -d -p 3306:3306 mysql
# 뜻은 mysql이라는 이미지를 사용하는 000이라는 컨테이너를 생성, 그리고 비밀번호는 000이다.
#이때 3306 은 mysql 기본 포트넘버이다. bind port 3306 in my host machine with the port 3306 in the container
그리고 mysql 인스턴스를 실행해주려면
docker exec -it #컨테이너이름 bash
# 이렇게 하면 docker 로 돌아가고 있는 mysql 가상 환경에 접속한 것
# bash 말고 원하는 shell 작성가능
mysql -u #유저이름(ex.root) -p
#password 로 로그인할 것
'개발공부 > Docker' 카테고리의 다른 글
[Docker] MySQL 접속하기 및 로컬호스트 접속 오류해결 (1) | 2023.12.08 |
---|---|
[Docker] 윈도우 M1 플랫폼 충돌 오류해결 (1) | 2023.12.08 |
[Docker] Ports are not available 오류 (0) | 2023.02.17 |
[Docker] 명령어 정리 (0) | 2023.02.17 |