리눅스 프로그래밍 환경 구성하기

2020. 9. 2. 11:15linuxPrograming

리눅스 프로그래밍 환경 구성하기

교수님께서는 ubuntu iso 파일을 다운받아 가상머신에 실행하셨다. 하지만 나는 가상머신이 컴퓨터 자원을 너무 많이 사용하고 용량또한 너무커서 docker로 환경을 만들었다. 

 

docker로 구성하게 되면 가상환경에 비해 리눅스 자체 기술인 chroot, namespace, cgroup 등을 이용하여 프로세스 단위의 격리 단위를 만들어 주기 때문에 성능 손실이 거의 없습니다. 

이와 같은 기술을 사용하면 프로세스를 따로 분리해 독립적으로 실행하는 것과 같이 만들어 성능 손실이 거의 없습니다. 또한 모든 파일이 존재하는 것이 아닌 필요한 파일 및 라이브러리가 존재하기 때문에 훨씬 가볍다. 

 

그래서 배포하는 시간이 훨씬 빠르고 성능 손실이 거의 없다.

 

우선 교수님에게 맞추어서 ubuntu image를 설치한다. 

docker pull ubuntu:16.04

 

그런다음 실행시킬 Dockerfile을 작성한다. (사실 명령어가 몇 줄안되서 run으로 바로 만들어도 될것 같지만 나중에 어떻게 바뀔지 모르기 때문에 문서로 남겨둔다.)

FROM ubuntu:16.04

LABEL maintainer "dl57934<dl57934@gmail.com>"
RUN apt-get update
RUN apt-get install gcc

EXPOSE 3000

 

이미지 만들기

Docker build -t linuxpro ./

 

그런 다음 이미지를 컨테이너로 실체화 해서 실행시킨다. -p명령어를 통해 

docker run -itd -p 3000 --name linuxpro linuxprograming

 

그런 다음 attach를 통해 쉘에 접속할 수 있다. 

docker attach linuxprograming

 

또한 컨테이너를 종료하지 않고 나오기 위해서는 

ctrl + p + q를 눌러야한다. ctrl d를 누르면 바로 종료되기 때문에 내부의 파일 내용도 삭제된다.