-
Docker 를 쓰려는 이유는 2가지다
1. 팀 프로젝트 하면서 배포 환경을 수동으로 설정 + 배포를 했는데 자동화시키면 좋을거 같았다.
(로컬에선 잘 되다가 서버에 올리니까 오류가 뜨고.. 그래서 매일 새벽에 일어나서 업데이트를 했다. )
2. 학교 팀 프로젝트에서 conda container 를 썼는데 편했다. Tensorflow 가 제거에선 되는데 ㅇㅇ님 컴에서는 안되요 ~할 때 container 복사 해 드릴까요 이런 식으로..
요즘 기술을 이해하고 써야 한다는 생각이 드니까, 이론적인것도 같이 공부하자.
이론적인거 + 실제 써보는거 기록해 보자.
Docker 는 container 기술로, https://docs.docker.com/get-started/overview/ -> delay reduces between writing code and deploy. 새 코드를 수동으로 배포할 때 이상한 오류가 나서 1시간이 걸린 적이 있었다. docker 를 사용할 경우 그런 문제를 해결할 수 있다.
Docker 는 os level dependency manager 이고, 파일 시스템을 감싸서 dependency 를 제공한다.
비슷하면서 다른 친구들이 있는데, conda 와 virtual machine 이다. Conda 는 python 에서 container 인 점이 다르고, virtual machine 은 os 를 포함한다는 점이 다르다.
또한 sandboxing 해서 보안적으로 좋다.
( 학교 수업에서 배운 내용을 써먹어 보니까 좋다 .. )
( 오류가 있을거고 점점 수정할 것.. )
Dockerfile 을 작성해서 docker build 를 해야 한다.
docker build -t repository_name 처럼 빌드할 수 있고, 그 결과로 로컬에 생긴다.
docker push 로 docker hub 에 push 할 수 있다.
Dockerfile 에서 image 를 inherit 해서 쓸 수 있다.
Image 를 dockerhub 에서 pull 해서 쓸 수 있다.
docker pull repository_name 으로 pull 할 수 있디.
docker run -d -p 80:81 repository_name 으로 실행할 수 있는데, host port 80 과 container port 81 을 mapping 하고 -d 는 daemon 으로 실행한다는 뜻이다.
repository_name 이 로컬에 존재할 경우 실행하고, 존재하지 않을 경우 dockerhub 에서 가져온다.
latest 를 실행하는 것이 default 다.
Docker compose 는 yaml 파일로 image 들을 orchestrate 하는 방법이다. yaml 파일만 배포해서 쓸 수 있을 거 같다.
... 진짜 편한 기술이다 오 ㄷㄷ..
'project' 카테고리의 다른 글
광고 프로젝트 - 개발 일기 (0) 2022.06.01 SnsChats - 개발 일기 (0) 2022.05.25 Spring security 5 OAuth2 공부한거 (0) 2022.05.06 테스트 코드의 중요성, TDD (0) 2022.04.30 Spring security > 5.1 jwt 인증하는 방법 (0) 2022.04.25