Docker는 개발자만을 위한 것이 아닙니다 — 저는 일반 사용자이지만, Docker는 제가 앱을 실행하는 방식을 바꾸어 놓았습니다
Docker는 수년 동안 제 머릿속의 '나를 위한 것이 아냐' 폴더에 들어가 있었습니다. 바로 Kubernetes, 엔터프라이즈 대시보드, 존재하기 위해서 Slack 채널이 필요할 것 같은 모든 것들 옆에 있었죠. 그런 분위기가 느껴졌어요. 컨테이너, 이미지, 오케스트레이션. 단순히 복잡함을 암시하는 것이 아니라 그것을 선포하는 단어들입니다. 그래서 저는 무시했습니다. 제 시스템에서 아무것도 기술적으로 고장나지 않았지만 뭔가 확실히 이상한, 그 미묘한 리눅스 문제 때문에 지치기 전까지는요.
앱들이 서로 겹치는 걸 보았고, 의존성이 발밑에서 움직이는 걸 느꼈어요. 한 가지 더 설치하는 게 결국 모든 걸 이상하게 만드는 원인일지도 모른다는 서서히 느껴지는 느낌. 도커가 리눅스를 고치지 못했습니다. 덕분에 제가 옆눈질을 했던 대부분의 이유가 사라졌어요. 이미 몇 개의 Docker 기사를 썼고 여러분의 공동 댓글도 한 번 받았으니, Docker가 무엇인지 알려드릴게요!
도커는 복잡해 보이지만, 실제로는 그렇지 않습니다
그것은 시스템에 영향을 주지 않는 격리된 박스 안의 앱일 뿐입니다
TED 강연 없는 Docker가 여기 있습니다. 컨테이너는 실행에 필요한 모든 것이 포함된 앱으로, 자체적인 작은 버블 안에서 존재합니다. 시스템의 라이브러리를 빌려 쓰지 않습니다. 몰래 무엇인가를 다시 쓰지 않습니다. 세 달 후에 발견하고 중얼거리게 될 흔적을 남기지 않습니다. 실행됩니다. 격리된 상태를 유지합니다. 제대로 작동합니다.
그리고 중요한 변화는 이것입니다: 이제 더 이상 앱을 설치하는 것이 아니라, 앱을 실행하고 있다는 점입니다. 이것은 의미론적인 차이처럼 들리지만, 실제로 무엇을 의미하는지 이해하면 다릅니다. 왜냐하면 어떤 작업을 끝냈을 때, 그것을 제거하고 아무것도 남지 않기를 바라며 삭제하는 것이 아니라, 컨테이너를 제거하면 그것은 사라집니다. 깨끗하게요. 나중에 '이게 아직 왜 여기 있지?'라는 고고학적 고민도 없습니다. 소프트웨어를 설치하는 것과는 덜 비슷하고, 집 열쇠를 맡기지 않고 단기적으로 빌리는 것과 더 비슷합니다.
일반 Linux 사용자로서 내가 Docker를 사용하기 시작한 이유
나는 작은 것들이 크고 성가시게 고장 나는 것에 지쳤다
리눅스는 환상적입니다. 그렇지 않은 척할 생각은 없습니다. 하지만 리눅스는 무엇이든 할 수 있게 해주는 습관이 있어서, 때때로 창의적이고 서서히 문제를 일으키는 방식으로 망가뜨리게 만들기도 합니다. 치명적인 실패는 아니고, 극적인 것도 아니지만, 화요일 밤 11시 47분에 자신의 인생 선택을 다시 생각하게 만들 정도는 됩니다. 상황은 익숙할 겁니다: 앱 하나를 설치하면 다른 앱이 갑자기 다르게 동작하고, 의존성이 업데이트되면 이상한 라이브러리가 갑자기 성격 문제를 보이기 시작합니다.
즉시 모든 것을 연결하지는 않습니다. 왜 그럴 필요가 있겠습니까? 그리고 이제는 문제 대신 분위기를 해결하려고 합니다. Docker는 그 모든 것을 피합니다. 각 애플리케이션은 자체 환경에서, 자체 의존성과 규칙을 가지고 살아갑니다. 서로에 대해 알지 못하며, 더 중요하게는 서로를 방해할 수 없습니다. 일반 시스템에서는 절대 충돌할 것들을 실행할 수 있고, 그저 감정적으로 성숙한 성인처럼 거기 앉아 있을 뿐입니다. 그것만으로도 저는 완전히 매료되었습니다.
리눅스에 도커 설치하는 방법 (쉬운 방법)
몇 가지 명령만 입력하면 끝이에요, 깊이 있는 분석은 필요 없어요
사람들이 분위기가 '14개의 탭을 열고 개념을 배우기 시작한다'로 바뀔 것으로 기대하는 곳이 바로 여기입니다. 하지만 그렇지 않습니다.
리눅스 민트나 우분투에서는, 기본적으로 터미널에 입력해야 하는 것은 이게 전부입니다:
sudo apt update
sudo apt install docker.io시작하고 활성화하세요:
sudo systemctl enable docker
sudo systemctl start docker매번 sudo를 입력하고 싶지 않다면 자신을 docker 그룹에 추가하세요:
sudo usermod -aG docker $USER로그아웃하고 다시 로그인하면 끝이에요. 그게 전부예요. 의식도, 입문 절차도, 이상한 희생도 없어요.
Docker 소켓에 접근할 수 있는 누구나 사실상 머신에서 루트 권한을 갖게 됩니다. 개인 홈 랩에서는 일반적인 관행이지만, 보안이 중요한 서버에서는 '절대 안 되는' 일입니다.
다음으로 테스트하세요:
docker run hello-world성공 메시지가 출력되면 축하합니다. 이제 '오케스트레이션'이라는 단어를 소리 내어 말하지 않고도 컨테이너를 실행할 수 있습니다.
Docker로 앱을 실행하는 것이 실제로 어떻게 보이는지
여기서부터는 추상적으로 들리는 것이 멈추고 유용하게 느껴지기 시작합니다. 앱을 설치하는 대신, 이미지를 실행합니다. 한 줄 명령으로 실행됩니다.
이런 것:
docker run -d \
-p 8080:80 \
--name myapp \
some-image-name그리고 맞아요, 처음이라면 많아 보일 수 있지만, 대부분은 그냥 매우 정상적인 일을 하는 플래그들입니다. 백그라운드에서 실행합니다. 포트를 엽니다. 이름을 지정합니다. 그게 전부입니다.
그런 다음 브라우저를 열고 http://localhost:8080 으로 가면 앱이 그냥… 거기에 있습니다. 설치 마법사도 없고, 시스템 변경도 없고, 동의하지 않은 이상한 통합 선택도 없습니다. 마음에 들지 않는다면?
docker stop myapp
docker rm myapp사라졌다. 완전히, 남은 것 하나 없이. '이 디렉토리는 중요한 것 같지만 삭제하기가 두려워.' 같은 것은 없다. 소프트웨어와의 가장 깔끔한 이별이다.
Docker가 실제로 일상 생활에서 유용해지는 곳
이곳은 당신이 예전에 설치하던 앱을 조용히 대체하는 곳입니다
이것이 바로 몰래 다가오는 부분입니다. 한 개의 컨테이너로 시작합니다. 어쩌면 단순히 뭔가를 테스트하기 위해서일 수도 있습니다. 그러다 갑자기 실제로 의존하게 되는 것들을 운영하게 됩니다. 개인 클라우드, 실제로 신경 쓰고 싶지 않은 저장소 비용을 내는 대신. 빌린 것이 아니라 나만의 것처럼 느껴지는 음악 서버. 대부분 단순히 깜빡일 뿐인 모호한 ‘스마트 기능’ 대신 제어권을 주는 네트워크 도구들.
그리고 그 모든 시간 동안, 당신의 시스템은 손대지 않은 상태로 유지됩니다. 이런 것들은 마치 영구적으로 이사할 계획이라도 있는 듯 OS에 통합되지 않습니다. 그것들은 OS와 나란히 존재합니다. 그것이 당신이 새로운 것을 시도하려는 의지에 변화를 줍니다. 이제 호기심에는 비용이 들지 않기 때문입니다.
익숙해지면, 전통적인 설치는 조금… 불안정하게 느껴진다
이것이 이상한 부분입니다. Docker는 화려하지 않습니다. 자신을 삶을 바꾸는 도구라고 알리지도 않습니다. 그저 조용히 디지털 귀찮음을 제거하여, 설치에 대해 예전처럼 생각하지 않게 된 것을 깨닫게 됩니다. 주저하는 것을 멈추고, 망가질까 걱정하는 것을 멈추며, 시스템을 깨지기 쉽고 완벽하게 균형 잡힌 상태로 유지해야 하는 대상으로 다루는 것도 멈춥니다. 왜냐하면 이제 앱이 더 이상 진짜로 시스템의 일부가 아니기 때문입니다.
그들은 단지 그 옆에서 달리면서 자기 일만 하고, 건드리지 말아야 할 것은 건드리지 않습니다. 그리고 그 점을 깨닫고 나면, 전통적인 설치 방식으로 돌아가는 것은 마치 시도하는 모든 앱에 루트 권한을 주고 잘 행동하리라는 막연한 약속만 믿는 것과 비슷하게 느껴집니다. Docker는 단순히 개발자를 위한 것이 아닙니다. 설치한 후에 ‘이게 나중에 문제를 일으킬 수도 있겠네’라고 생각해본 적 있는 사람이라면 누구에게나 해당됩니다. Docker와 함께라면 그런 문제는 일어나지 않습니다.








