이번주는 docker를 사용하여 프로젝트를 배포하는 방법에 대해 학습했다.
리눅스의 CLI 명령어는 이제 어느정도 익숙해졌지만 아직 docker에서 컨테이너를 생성하고, 컨테이너 간 연동하는 과정이 미숙하다고 느껴졌다.
기본적으로 Dockerfile을 작성해서 컨테이너를 생성하는 과정에 사용할 이미지와 실행 될 명령어들을 입력하고 docker-compose.yml에서 image 대신 작성한 Dockerfile을 build하여 컨테이너를 생성하는 것을 이해했다.
그리고 docker-compose.yml에서 컨테이너를 생성할 때 데이터가 유실되지 않도록 docker volume or bind mount 방식으로 볼륨을 잡아주고, 들어오는 요청에 대한 포트포워딩 및 컨테이너를 생성할 때 실행할 명령어를 설정하기 위한 entrypoint 등에 대해서 배웠고,
각각의 컨테이너는 독립적인 특징이 있기 때문에 필요한 정보를 전달해줄 때는 ENV로 dockerfile에서 환경변수를 설정하거나 docker run 명령으로 환경변수를 설정해줄 수 있다.
간단히 요약하면 Dockerfile 작성 -> docker-compose로 컨테이너 생성 -> sudo docker compose up 명령어로 컨테이너를 실행 순으로 컨테이너를 생성하고 실행할 수 있다.
그리고 파일을 만들어 데이터베이스 계정 정보 등 중요한 정보들은 .env 파일에 담아 관리하고, 컨테이너의 용량을 줄이기 위해 slim과 alpine 태그의 이미지를 사용하는 방법도 배웠다.
아직까지 도메인을 구매하여 배포하는 단계까지는 연습해보지 못했지만 docker로 컨테이너를 다루는 것을 먼저 익숙하게 한 다음 배포하는 것도 연습을 해야겠다.