Record

도커란? 본문

CS

도커란?

now-record 2025. 6. 12. 16:42
반응형

현재 스타트업에서 공동설립자로 일하게 되었다. 허허.. 뭣도 모르고 시작하긴 했는데 일단 AI쪽 업무를 전담하기로 했다.

서버 배포와 관련해서 Docker를 사용하게 되었는데 사실 AI를 제외하고는 아는 지식이 없어서 공부를 하고자 한다. 

 

 

1. 도커란? 

도커란 어플리케이션을 패키징 할 수 있는 툴

 

컨테이너라고 불리는 하나의 작은 소프트웨어 유닛안에 우리의 어플리케이션과 그에 필요한 시스템 툴, 환경설정, 모든 디펜던시를 하나에 묶어서 다른 서버, 다른피시, 그 어떤 곳에도 쉽게 배포하고 안정적으로 구동할 수 있도록 도와주는 툴이다. 

 

어플리케이션과 어플리케이션이 구동하는데 필요한 모든 것들을 도커 컨테이너에 담아 저장 한 후,

어플리케이션을 구동하고 싶은 서버에 해당 도커 컨테이너를 다운받는다면, 어떤 PC에서도 동일하게 구동할 수 있다

 

2. 컨테이너를 만드는 방법 

컨테이너 사용하기 위해서는 만들기 위해서는 총 세가지가 필요 : 도커파일, 이미지, 컨테이너

도커파일을 만들어서 이걸로 이미지를 만들고 만들어진 이미지로 컨테이너를 구동 할 수 있다

 

1. Dockerfile : 컨테이너를 어떻게 만들어야 하는지에 대한 설명서. 아래와 같은 내용을 포함하고 있다.

- 어플리케이션을 구동하기 위한 파일은 무엇이 있는가?

- 어떤 dependencies를 다운받아야 하는가?

- 필요한 환경변수

- 어떻게 구동해야하는지에 대한 script

 

2. Image : 어플리케이션을 실행하는데 필요한 코드, 런타임, 환경, 시스템 툴, 시스템 라이브러리등이 포함

실행되고 있는 어플리케이션의 상태를 찰칵- 해서 이미지로 만들어둔다고 생각하면 된다!

*한번 만들어지면 변경이 불가능*

 

3. Container : Image를 고립된 환경에서 개별적인 시스템 안에서 실행할 수 있는 공간

container 안에서 image를 이용해 우리의 어플리케이션이 구동한다.

 

3. 어떻게 Cotainer 배포할 수 있나?(어떻게 Image를 공유할 수 있나?)

 

1. 내 로컬에서 만든 이미지를 Container Registry에 Push

2. 서버는 Container Registry에서 이미지를 Pull 로 당겨와서 사용한다.

3. 서버에는 Docker 설치 필수!

 

4. docker-compose build의 역할

build: . 처럼 정의된 서비스는 현재 디렉토리의 Dockerfile을 이용해 이미지 생성.

즉, docker build 명령을 여러 서비스에 대해 한꺼번에 처리.

 

5. 도커이미지 

만들어진 이미지를 가져다 쓸 경우에는 도커 파일이 없어도 됨 

 

6. 도커이미지 수정 배포 자동화 

CI/CD 도구 활용 

코드푸시 -> github ations 작업수행

docker 이미지 빌드 

dockerhub 또는 AWS ECR에 push 

EC2에 SSH 접속 -> pull &Restart

 5. Docker를 EC2에 배포

 

Docker 컨테이너AWS EC2 인스턴스 위에서 실행하는 것을 말한다. 

즉, EC2는 일종의 원격 리눅스 컴퓨터고, 거기서 Docker를 설치한 다음, 내가 만든 컨테이너(서비스)를 띄우는 것.

 

6. EC2에 배포하는 이유 

 

개발한 앱을 인터넷에서 접속 가능하게 만들기 위해

예를 들어 Flask 웹 서버를 Docker로 만들고, EC2에 띄우면 누구나 EC2의 퍼블릭 IP로 접근할 수 있음.

 

 

 

 

출처:https://be-developer.tistory.com/18?pidx=9

 

[Docker] 도커란 무엇인가? 도커 한방 정리!

[Docker] 도커란 무엇인가? 도커 한방 정리! 우리 회사는 하드웨어 중심의 IoT 회사. 전체적으로 나이가 많고 (40대 이상) 개발 연구소장님이 하드웨어 부장님이라 굉장히 기술이 올드하다... 서버는

be-developer.tistory.com

의 글을 거의 복수 붙여넣기 했습니다. 문제될 시 삭제하겠습니다. 

'CS' 카테고리의 다른 글

암호화 , SSL 실습  (0) 2026.02.20
네트워크 ( physical layer, device)  (0) 2025.11.26
네트워크 , 라우터 , 스위치 , mac  (0) 2025.10.30
[알아보자] 인터넷이란 무엇일까?  (0) 2025.10.25
git - 사용법  (0) 2025.06.19