도커 네이놈
요즘은 서버 기술에는 클라우드가 대세이다. 백엔드하면 빼놓을 수 없는 친구인 고래Docker
가 있다.
사실 나는 컨테이너랑 도커의 경우 말로만 많이 들었지 실제로 공부를 하거나 사용해 본적이 없다.
근데 이게 웬걸, 사내에서 신규 솔루션을 팀원 분들과 개발하던 도중 팀장님께서 이런 말을 나에게 하셨다.
[팀장님] 🧑💻💬 : 열심히 도커로 이미지랑 컨테이너 만들 준비하자~
[나] 👶💬 : ?? 저 도커 모르는데요...
[팀장님] 🧑💻💬 : 하면서 배워~
[나] 👶💬 : (ㅜ_ㅜ) 네..
그렇게 시작된 고래와의 싸움이다. 처음에는 용어들이 어려워 부담감이 컸지만, 다행히 사수분이 친절히 알려주시기도 하고 맨땅에 헤딩하며 부딪히다보니 금방 익혔던 거 같다.
다만 이 녀석 때문에 신입 5개월차에 회사에서 야근이 아닌 밤을 새버렸다. 🫠
덕분에 많이 지치고 힘들었지만.. 개발이란게 뜻대로 될 수 없다는걸 뼈저리게 느꼈고, 뿐만 아니라 성장할 수 있는 좋은 경험이었다고 생각한다.
내가 생각한 Docker?
도커를 사용해보고 느낀 점을 한 줄로 설명하면.. 쉽고 간단하고 빠르게 서버 배포 및 관리를 해주는 친구이다.
도커를 통한 서버 배포를 하는 대략적인 순서를 표현하면 이렇다.
DockerFile
을 생성- 1번에서 만든 DockerFile로 이미지를 빌드한다.
- 이미지를 실행하면 컨테이너가 생성된다.
- 컨테이너가 생성되면 하나의 격리된 조그만 리눅스 가상환경이 생성된다.
- 이 안에서 웹서버를 실행하든, 인공지능 모델을 학습시키든 휘뚜루 마뚜루가 가능하다~
💡 : 이 과정에서 중간에 docker-compose
라는 친구를 추가하게 되면 컨테이너를 여러개 생성할 수 있으며 또한 아주 아주 쉽게 관리할 수 있게 된다!
그래서 도커랑 포드맨이랑 뭐가 달라
나는 사실 실제로 사용할 때 Podman을 사용했다. Docker와 Podman의 제일 큰 차이점은 도커 데몬의 유무였다.
도커는 도커 데몬이라는 서비스 위에서 대부분의 작업이 이루어지고, 포드맨은 fork/exec
방식으로 직접 실행하는 방식이다.
또한 다른 점은 다음과 같았다.
Docker | Podman |
---|---|
도커-데몬으로 인해 root 권한 필요 | root 권한 불필요 |
데몬이 꺼지면 컨테이너도 사망..☠️ | 컨테이너가 꺼져야 사망..🐋 |
도커는 기본적으로 쿠버네티스를 지원하지 않는다. | 자체적인 쿠버네티스 지원 |
이렇게 말하니깐 포드맨이 좋은거 같은데.. 사실 용도에 따라 둘 중 적절한 것을 사용하는게 맞는 거 같다.
진짜 엄청 많이 쓴 명령어들 💻
아래 명령어만 주구장창 돌렸던 거 같다.
- podman logs
- podman build
- podman ps
- podman images
- podman exec -it
- podman-compose up -d
내가 생각한 도커의 핵심?
지금까지의 내가 판단한 핵심은 아래의 5개로 정해진다.
DockerFile
작성 요령docker-compose
&yaml
작성 문법 알기- 이미지 용량 최적화의 방법을 고민하는 것? → 컨테이너 최적화 문제로 직결되기 때문..
- 볼륨이 무엇인지 & 볼륨 사용법 알기
- 볼륨 컨테이너가 무엇인지 알기
사실 아직까진 나도 잘 알지는 못하지만 열심히 공부를 해야겠다. 특히나 볼륨의 개념은 많이 중요해보인다. 아직 DB를 컨테이너에 올려서 사용해본 적이 없기에 볼륨의 중요성이 많이 중요하다고 느낀다.
그럼 내일도 출근하러..🥸