Docker? Podman?

[토막글] 이 귀염둥이들은 뭔데 대세이고 유명할까?

2024-02-05

도커 네이놈

요즘은 서버 기술에는 클라우드가 대세이다. 백엔드하면 빼놓을 수 없는 친구인 고래Docker가 있다.

사실 나는 컨테이너랑 도커의 경우 말로만 많이 들었지 실제로 공부를 하거나 사용해 본적이 없다.

근데 이게 웬걸, 사내에서 신규 솔루션을 팀원 분들과 개발하던 도중 팀장님께서 이런 말을 나에게 하셨다.

[팀장님] 🧑‍💻💬 : 열심히 도커로 이미지랑 컨테이너 만들 준비하자~
[] 👶💬 : ?? 저 도커 모르는데요...

[팀장님] 🧑‍💻💬 : 하면서 배워~
[] 👶💬 : (ㅜ_ㅜ) 네..

그렇게 시작된 고래와의 싸움이다. 처음에는 용어들이 어려워 부담감이 컸지만, 다행히 사수분이 친절히 알려주시기도 하고 맨땅에 헤딩하며 부딪히다보니 금방 익혔던 거 같다.

다만 이 녀석 때문에 신입 5개월차에 회사에서 야근이 아닌 밤을 새버렸다. 🫠

덕분에 많이 지치고 힘들었지만.. 개발이란게 뜻대로 될 수 없다는걸 뼈저리게 느꼈고, 뿐만 아니라 성장할 수 있는 좋은 경험이었다고 생각한다.

내가 생각한 Docker?

도커를 사용해보고 느낀 점을 한 줄로 설명하면.. 쉽고 간단하고 빠르게 서버 배포 및 관리를 해주는 친구이다.

도커를 통한 서버 배포를 하는 대략적인 순서를 표현하면 이렇다.

  1. DockerFile을 생성
  2. 1번에서 만든 DockerFile로 이미지를 빌드한다.
  3. 이미지를 실행하면 컨테이너가 생성된다.
  4. 컨테이너가 생성되면 하나의 격리된 조그만 리눅스 가상환경이 생성된다.
  5. 이 안에서 웹서버를 실행하든, 인공지능 모델을 학습시키든 휘뚜루 마뚜루가 가능하다~

💡 : 이 과정에서 중간에 docker-compose 라는 친구를 추가하게 되면 컨테이너를 여러개 생성할 수 있으며 또한 아주 아주 쉽게 관리할 수 있게 된다!

그래서 도커랑 포드맨이랑 뭐가 달라

나는 사실 실제로 사용할 때 Podman을 사용했다. Docker와 Podman의 제일 큰 차이점은 도커 데몬의 유무였다.

도커는 도커 데몬이라는 서비스 위에서 대부분의 작업이 이루어지고, 포드맨은 fork/exec 방식으로 직접 실행하는 방식이다. 또한 다른 점은 다음과 같았다.

DockerPodman
도커-데몬으로 인해 root 권한 필요root 권한 불필요
데몬이 꺼지면 컨테이너도 사망..☠️컨테이너가 꺼져야 사망..🐋
도커는 기본적으로 쿠버네티스를 지원하지 않는다.자체적인 쿠버네티스 지원

이렇게 말하니깐 포드맨이 좋은거 같은데.. 사실 용도에 따라 둘 중 적절한 것을 사용하는게 맞는 거 같다.

진짜 엄청 많이 쓴 명령어들 💻

아래 명령어만 주구장창 돌렸던 거 같다.

  • podman logs
  • podman build
  • podman ps
  • podman images
  • podman exec -it
  • podman-compose up -d

내가 생각한 도커의 핵심?

지금까지의 내가 판단한 핵심은 아래의 5개로 정해진다.

  • DockerFile 작성 요령
  • docker-compose & yaml 작성 문법 알기
  • 이미지 용량 최적화의 방법을 고민하는 것? → 컨테이너 최적화 문제로 직결되기 때문..
  • 볼륨이 무엇인지 & 볼륨 사용법 알기
  • 볼륨 컨테이너가 무엇인지 알기

사실 아직까진 나도 잘 알지는 못하지만 열심히 공부를 해야겠다. 특히나 볼륨의 개념은 많이 중요해보인다. 아직 DB를 컨테이너에 올려서 사용해본 적이 없기에 볼륨의 중요성이 많이 중요하다고 느낀다.

그럼 내일도 출근하러..🥸