2023. 12. 28. 12:47ㆍNAVER AI Tech/Computer Science
실제로 개발은 Window에서, 서버는 Linux에서 작동하는 경우가 많다.
- 이때 OS가 다르면 환경설정이 다른 문제가 발생함.
- 같은 OS를 사용한다고 하더라도 개발때와 production 서버의 permission이 다른 경우가 많아 환경 변수가 꼬이기도 함
소프트웨어 가상화 : 특정 소프트웨어 환경을 만들고, Local과 production서버 모두 그대로 활용하는 것.
- 개발(Local)과 운영(Production) 서버의 환경 불일치가 해소
- 어느 환경에서나 동일한 환경으로 프로그램을 실행할 수 있음
- 개발 외에 Research도 동일한 환경을 사용할 수 있음
Docker 등장전에는 VM(Virtual Machine)을 주로 사용했었음.
But, Host OS위에 Guest OS를 실행시키는 점에서 굉장히 '무겁다'라고 표현함.
- container 개념이 등장하면서 가상화를 '경량화'된 프로세스의 개념으로 만든 기술이 등장.
Docker : 다른 사람이 만든 소프트웨어를 가져와서 바로 사용할 수 있음
1. Docker image
- 일종의 '템플릿' (read only)
- 원격 저장소 Container Registry에 저장된다 : dockerhub, GCR, ECR 등이 있음.
2. Docker container
- docker image를 활용해 실행된 인스턴스 (write 가능)
** 다른 사람이 만든 소프트웨어 : Docker image (OS와 환경변수를 포함한 실행환경)
- Linux, Window, Mac등 환경에 상관없이 어디에서나 동일하게 실행할 수 있음
1. 다른사람이 만든 Docker Image를 그대로 가져와서 container를 생성하여 사용할 수 있다.
2. Docker Image를 빌드하여 생성하고 container를 생성하여 사용할 수 있다.
- dockerfile을 만들어야함 : 환경설정에 대한 내용이 들어있는 readme 파일이라고 볼 수 있음.
- docker build -t image_name:tag dockerfile_path : dockerfile을 참고하여 docker image생성 명령어
Docker Command
- docker pull image_name:tag 필요한 이미지 다운
- docker images 다운받은 이미지 목록 확인
- docker run image_name:tag 이미지를 기반으로 컨테이너 생성
- docker ps : 실행중인 컨테이너 목록 확인
- docker exec -it container_name /bin/bash : 컨테이너에 진입
- docker stop container_name : 실행중인 컨테이너 중지
- docker rm cotainer_name : 중지된 컨테이너 삭제
- docker run에서 -v옵션 : docker의 container와 host의 지정한 경로가 공유됨(=컨테이너를 삭제해도 파일유지)
'NAVER AI Tech > Computer Science' 카테고리의 다른 글
7. MLOps (0) | 2023.12.28 |
---|---|
6. Debugging (0) | 2023.12.28 |
3. 리눅스(Linux) (1) | 2023.12.27 |
2. 라이브러리 버전 관리 (0) | 2023.12.27 |
1. Software Engineering (0) | 2023.12.27 |