학습 기록 블로그

Docker 공부 본문

정리

Docker 공부

오직노력 2023. 3. 4. 01:53

개인적으로 공부한 도커 내용을 짧게 정리한 글입니다.

도커란?

docker는 컨테이너를 활용함으로써 컴퓨터 자원활용성을 높일 수 있는 오픈소스 가상화 플랫폼이다.

도커를 사용하는 이유는?

하나의 컴퓨터에서 여러 서비스를 돌리게 되면 각각의 프로젝트 설정에 따라 여러 오류나 충돌이 발생하게 된다.

그러면 이런 점을 해결할 방법에는 무엇이 있는가?

 

생각해 볼 수 있는 경우는 두 가지로 가상환경과 docker의 컨테이너 방식이다.

 

VirtualBox나 VMWare, 페러릴즈 등으로 내 OS안에 또 다른 OS들을 설치해서 각 OS마다 다른 서비스를 개발하는 가상환경 방식은 각 서비스들을 확실하게 분리해주긴 하지만 효율이 좋은 방법은 아니다.

 

한정되어 있는 컴퓨터 자원을 각 OS마다 특정 비율로 분할해서 끌어가기 때문이다. 특정 서비스에 20% 또 하나에는 40% 나머지는 40% 이런 식으로 밖에 할당할 수 없기 때문에 제한적으로 개발할 수밖에 없고 각각 OS 기능들 또한 따로 설치되니 이 또한 자원이 낭비된다.

 

반면 docker의 컨테이를 활용한 방식은 위의 문제와 함께 가상환경의 문제점도 효율적으로 해결이 가능하다.

컨테이너들은 각각의 필요한 공간만을 차지하고 각 컨테이너들 마다 한정적인 컴퓨터 자원을 공유해서 쓰기 때문에 낭비되는 부분이 크지 않고, 컨테이너 방식 또한 서비스들이 확실하게 분리되기 때문에 설정이나 버전에 따른 오류나 충돌도 쉽게 방지가 가능하다.

 

또한 docker에서는 리눅스 컴퓨터의 특정 상태 즉 컨테이너 실행에 필요한 파일과 설정값을 캡처해 이미지 형태로 저장해 놓는 것이 가능한데, 이 이미지는 dockerHub를 통해 공유되고 언제든지 내려받을 수 있기 때문에 만약 작업하던 환경을 다른 환경에 똑같이 설정해야 한다고 한다면 미리 만들어 놓은 이미지를 dockerHub에서 다운받는 것으로 간단하게 해결할 수 있다.

 

도커 기본 명령어

도커에는 수많은 명령어와 옵션들이 있는데 여기에는 그중 사용을 위한 가장 기본적인 명령어들만 정리하겠다.

이미지 관련

-이미지 목록 보기

$ sudo docker images

 

-이미지 검색

$ sudo docker search [이미지 이름]

 

-이미지 받기

$ sudo docker pull [이미지 이름]:[버전]

 

-이미지 삭제

$ sudo docker rmi [이미지 id]

 

컨테이너 관련

-컨테이너 목록 보기

$ sudo docker ps

 

-컨테이너 실행

$ sudo docker run [옵션] 이미지명[:태그명] [인수]

 

-컨테이너 시작

$ sudo docker start [컨테이너 id 또는 name]

 

-컨테이너 재시작

$ sudo docker restart [컨테이너 id 또는 name]

 

-컨테이너 접속

$ sudo docker attach [컨테이너 id 또는 name]

 

-컨테이너 정지

$ sudo docker stop [컨테이너 id 또는 name]

  • Bash shell에서 exit 또는 Ctrl + D를 입력하면 컨테이너가 정지된다.

-컨테이너 삭제

$ sudo docker rm [컨테이너 id 또는 name]

 

-모든 컨테이너 삭제

$ sudo docker rm -f $(docker ps -qa)

 

 

 

 

 

 

 

Comments