Docker 이미지 빌드, 컨테이너 생성 flow 총정리

programming·2023년 2월 22일
0
post-thumbnail

Docker 이미지 빌드, 컨테이너 생성 flow 총정리

  1. Docker Images에 mysql 이미지 빌드
    (1) 터미널 명령어: docker pull mysql
    (2) 터미널 명령어: docker images (다운로드한 Docker 이미지 확인)

  2. Docker Containers에 mysql 컨테이너 생성 및 실행
    (1) 터미널 명령어: doker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<Docker 비밀번호 입력> -d -p 3306:3306 mysql:latest(컨테이너 이름:태그이름)
    (2) Docker 컨테이너 리스트 출력 명령어=> docker ps -a

  3. 네트워크 만들기 ( ex) 예시이름 - con-net / mysql / server)
    (1) docker network create con-net(네트워크 예시 명칭) <=네트워크 만들기
    (2) docker network inspect con-net(네트워크 예시 명칭) <= 네트워크 및 ip 확인
    (3) docker network connect mysql(컨테이너 예시 명칭) <= 네트워크 연결
    (4) mysql의 IP주소 확인하기.

  1. VScode에서 express 파일 Docker Images에 이미지 빌드
    (1) 확인한 mysql의 IP주소를 express/model/databse.js에서 로컬 주소 부분에 바꿔 넣기.
    (2) Dockerfile 이라는 이름으로 파일 생성.
    (3) 터미널 명령어: docker build -f Dockerfile -t <이미지 이름> . <== 이미지 이름쓰고 '한 칸 띄고 마침표'까지 적기.

  2. VScode에서 express 파일 Docker Containers에 컨테이너 생성 및 실행
    (1) 터미널 명령어: docker run -it -p 3000:3000 --name server express bash
    (2) docker network connect server (express파일 컨테이너 예시 명칭) <= 네트워크 연결
    (3) docker network inspect con-net <= 네트워크 및 ip 확인

  1. Docker express 컨테이너 누르고 Terminal 들어간 후, npm start 입력.
  1. [SequelizeConnectionError]: Unknown database 'board' 이런 에러 뜨면, mysql 컨테이너로 가서, 터미널 간 다음에, board 생성해주기.
    (1) mysql -u root -p (로그인)
    (2) Docker 비밀번호 입력
    (3) SHOW DATABASES; 입력
    (4) create database board 입력
profile
개발 기록 일지

0개의 댓글