[Docker] 기본 명령어 정리

docker

현재 고급DB 과목을 수강중인데, 교수님께서 2017년도에 강의 하실 땐 Mariadb를 기준으로 실습하였으나.. 이번 학기에는 SQL Server와 MySQL을 기준으로 실습 + 과제물을 내주셨다. 현재 내 PC에는 XAMPP를 설치해놔서 MariaDB + Apache + phpMyAdmin이 설치되어 있는 상태다. 그래서 PC에 바로 MySQL을 설치할까 생각해봤으나, 그럴 경우 여러가지로 문제가 생길 것 같아서 아예 Docker에다가 통으로 환경을 구축하기로 결정했다. 그래서 docker 사용법에 대한 정리의 필요성을 느꼈다.

Docker 기본 설명서

도커를 설치하는 방법에 대해서는 따로 설명하지 않겠다.
대신 해당 링크를 참고하여 필요한 부분만 확인하도록 하자

Docker 기본 명령

  • docker pull [image]
    • 원격 저장소(dockerhub)에서 이미지를 가져온다.
    • docker와 dockerhub는 다른것이다.
    • git과 github의 관계와 유사한 관계라고 생각하면 편하다.
    • ex) docker pull hello-world
  • docker images
    • 로컬 저장소의 이미지 리스트를 확인
    • ex) docker images
  • docker run [image]
    • 컨테이너 등록과 실행 중인지 확인
    • ex) docker run hello-world
    • run은 기본적으로 Pull을 포함하여 실행한다. 즉, docker run hello-world를 실행하면 docker pull hello-world 가 같이 실행됨
    • docker run
  • docker ps [option]
    • 컨테이너 리스트 보기
    • ex) docker ps -a
    • docker ps
  • docker rm [id|name]
    • 컨테이터 삭제하기
    • ex1) docker rm competent_perlman
    • ex2) docker rm e56af772c419
  • docker rmi [image]
    • 이미지 삭제하기
    • ex) docker rmi hello-world
  • docker start [container]
    • 컨테이너 실행하기
    • ex) docker start hello-world
    • run은 pull + start, 즉, container를 생성하고 해당 컨테이너에 문제가 없으면 바로 start가 실행됨
    • start는 생성된 container가 stop상태일 때 실행시키는 역할
  • docker stop [container]
    • 컨테이너의 서비스 중지
    • ex) docker stop hello-world
    • start는 running 상태의 docker container를 중지시킴
  • docker exec -it [container] bash
    • 컨테이너 내부로 진입
    • ex) docker exec hello-world bash

이정도의 기초적인 명령어만 알고 있으면 충분하다.

MySQL Container 만들어보기

현재 내 컴퓨터에 php, apache, phpmyadmin 등이 설치되어있는 상태다. 따라서 mariadb대신 mysql만 docker로 실행하여 서비스하면 된다.

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xampp -d mysql

  • mysql run --name mysql
    • Container의 Name을 mysql로 설정
  • -p 3306:3306
    • -p [docker port]:[local port]
    • 즉, docker에서 지정한 port는 3306
    • local에서 해당 포트를 3306으로 사용
    • 지금은 똑같이 지정했으나, 다르게 사용할 수도 있음
  • -e MYSQL_ROOT_PASSWORD=xampp
    • mysql 비밀번호를 xampp로 설정
  • -d mysql
    • 사용할 docker image
    • -d 는 daemon이라고 생각하면됨 (서비스)
docker mysql running

docker exec mysql bash 명령을 이용하여 mysql container 내부로 진입한 후 mysql -u root -p 명령을 이용하여 mysql command client를 실행해볼 수 있다.

docker mysql container 진입

그리고 mysqlWorkbench에서 접속할 수도 있다

docker mysql workbanch connect