🍳

초보 개발자의 일상

Database

docker에 mysql 이미지 다운로드, container 관련 명령어

dev.jelee 2024. 12. 1. 15:46

* 내가 보기 편하려고 작성해놓는 명령어

 

docker container 생성 및 image 생성

docker image -h
  • docker image 생성시 help

 

docker image 목록보기

docker image ls
docker ps --all

 

docker hub에서 mysql 이미지 최신버전 다운로드하기

docker pull mysql
  • docker hub에서 mysql 이미지의 최신 버전을 다운로드 하겠다는 의미
  • 이 명령어를 실행하면 MySQL의 실행 환경이 포함된 이미지가 로컬 시스템에 저장된다. 이를 통해 나중에 MySQL 컨테이너를 생성하고 실행할 수 있게 된다.
  • 직접적으로 MySQL을 설치하는 것은 아니지만, MySQL을 실행하기 위한 준비 작업을 하는 것이다.
  • docker hub 주소: https://hub.docker.com/

 

docker에 mysql container 생성

docker run --name {container이름} -e MYSQL_ROOT_PASSWORD={비밀번호} -d mysql
  • 예시: docker run --name sbb-db -e MYSQL_ROOT_PASSWORD=mypw123 -d mysql
    • name 이름은 sbb-db
    • docker run : 새로운 컨테이너를 실행하겠다는 명령어
    • name sbb-db : 생성되는 컨테이너의 이름을 sbb-db로 지정하겠다는 의미
    • -e MYSQL_ROOT_PASSWORD=mypw123 : 환경 변수를 설정하여 MySQL의 루트 비밀번호를 mypw123으로 지정하겠다는 의미
    • -d : 컨테이너를 백그라운드에서 실행하도록 한다는 의미 (detached 모드)
    • mysql : 사용할 docker 이미지를 지정한다는 의미. 여기서는 MySQL 이미지를 사용하고 있다.

 

특정 docker container 실행

docker start {컨테이너명}
  • docker container 가 running 상태가 아닌 경우 docker start {컨테이너명} 이란 명령어를 실행시켜 running 상태로 만들어준다.
  • docker container 접속과는 다르다. 접속은 특정 container에 접속하여 database 관련하여 생성하고 삭제하는 등의 행위를 한다.

 

특정 docker container 종료

docker stop {컨테이너ID 또는 이름}
  • 간혹 권한 때문에 문제가 발생하는데 앞에 sudo를 붙여보자.
  • sudo docker stop {컨테이너ID 또는 이름}

 

특정 docker container 강제 종료

docker kill {컨테이너ID 또는 이름}
  • 간혹 권한 때문에 문제가 발생하는데 앞에 sudo를 붙여보자.
  • sudo docker stop {컨테이너ID 또는 이름}

 

특정 docker container 접속

docker exec -it {컨테이너명} mysql -uroot -p
  • 예: docker exec -it sbb-db mysql -uroot -p
    • 위 명령어 입력 후 엔터를 하면 sbb-db 컨테이너 생성할 때 지정한 비밀번호를 입력하라고 한다.
    • 비밀번호 입력 하고 엔터하면 된다.
  • mysql 실행됨.
  • docker container에 접속하여 MySQL 데이터 베이스 클라이언트를 실행하겠다는 뜻.
  • exec : 실행 중인 컨테이너에 명령어를 실행하는 데 사용
  • -it : 인터랙티브 모드와 TTY를 활성화함. 사용자가 container 내에서 입력을 받을 수 있게 한다.
  • sbb-db : 접속할 container 이름
  • mysql : 실행할 프로그램, 여기서는 MySQL 클라이언트 이다.
  • -uroot : MySQL의 사용자 이름을 root로 설정
  • -p : 비밀번호를 입력하라는 프롬프트를 표시. 비밀번호 명령어 실행 후에 입력해야 함.

 

docker container 포트번호 다르게 생성

docker run --name {컨테이너명} -e MYSQL_ROOT_PASSWORD={비밀번호} -p 3312:{포트번호} -d mysql
  • 3312:{포트번호} 는 3312포트로 들어갈 때 3312로 바로 들어가는 것이 아니라 내가 생성한 {포트번호}로 우회(?)하여 3312로 접속하겠다는 의미
    • ▼ 예시 
    • docker run --name sbb-db-ex1 -e MYSQL_ROOT_PASSWORD=mypw123 -p 3312:3306 -d mysql
    • docker run --name sbb-db-ex2 -e MYSQL_ROOT_PASSWORD=mypw123 -p 3313:3306 -d mysql
    • docker run --name sbb-db-ex3 -e MYSQL_ROOT_PASSWORD=mypw123 -p 3314:3306 -d mysql

 

특정 docker container 삭제(제거)

docker image rm {컨테이너명}
  • 예: docker image rm 92dc
    • 92dc는 내가 생성한 컨테이너. 해쉬코드(?) 대신에 본인의 image id를 입력하면된다.

 

docker 종료

exec

 

 

AWS에 설치한 docker container 종료가 안될 때

  • 실행 중인 컨테이너 프로세스 확인:
ps aux | grep docker
  • 해당 PID를 강제로 종료:
sudo kill -9 <PID>

 

 

 

 

'Database' 카테고리의 다른 글

데이터 베이스 관련 명령어  (0) 2024.12.01