코딩과로그
도커 데스크탑과 도커 엔진의 차이점 및 도커 데스크탑의 장점 본문
나는 도커 엔진을 먼저 설치하고 그 이후에 도커 데스크탑을 깔았다.
도커 데스크탑이 기존의 도커 엔진과 충돌이 발생할 수 있다고 하여 관련 정보를 찾아보았다.
도커 엔진과 도커 데스크탑의 차이점은 뭘까..?
리눅스에서, 도커 데스크탑과 도커 엔진은 같은 호스트에서 모두 설치하여 둘 다 동시에 존재할 수 있으며, 리눅스 상의 도커 데스크탑의 경우 컨테이너와 이미지를 VM상의 격리된 저장공간에 보관해 리소스 자원(CPU, memory, network)에 제한을 둘 수 있게 할 수 있다고 한다.
도커 엔진과 도커 데스크탑이 동시에 실행될 수 있으나 실행과정에서 문제가 생길 여지가 있다. 예를 들어 도커 엔진과 도커 컨테이너가 컨테이너들에 대해 동일한 네트워크 포트로 매핑했을 수 있다. 이럴 경우 충돌이 발생할 수 있다. ("port alreay in use" 라는 이슈)
따라서 도커 데스크탑을 실행 중일 경우에는 도커 엔진을 꺼놓는 것을 권한다고 한다.
$ sudo systemctl stop docker docker.socket containerd
그리고 도커 엔진은 기본적으로 부팅 시 자동으로 시작되도록 되어 있어 자동 시작을 멈춰놓는 것을 권하고 있다.
$ sudo systemctl disable docker docker.socket containerd
나는 컴퓨터에 도커가 두개 깔린 게 굉장히 찜찜했다.
과연 docker 명령어를 치면 어떤 도커 (도커 엔진, 도커 데스크탑) 가 이를 처리할 것인지 몰랐는데, 아래와 같이 docker context ls 명령어를 통해서 확인이 가능하다.
desktop-linux 가 도커 데스크탑의 Context라고 한다, ( Context는 도커 CLI 가 도커와 통실할 때 사용되는 중간 통신자 역할을 하는 것 같다.) default 가 도커 엔진으로 보인다.
desktop-linux 옆에 * 표시가 지금 현재 docker cli 가 사용하고 있는 context를 의미한다.
도커 컨텍스트를 변경하는 방법은 다음과 같다.
docker context use desktop-linux
근데.. 왜 도커 데스크탑에 VM이 필요할까?
첫번째로, 다른 OS 플랫폼과의 호환을 보장하기 때문이라고 한다.
두번째로는, 새로운 커널의 기능을 사용하기 위함이라고 한다.
세번째로는, 보안을 위해서라고 한다. 잘못된 도커 이미지를 사용할 경우 문제가 발생할 수 있다고 한다.
네번째로 최소한의 성능 영향으로 기능과 보안을 제공한다고 한다. 비록 VM을 사용하지만 virtifos 라는 파일 시스템을 사용하는데 이는 거의 네이티브 파일 시스템 성능을 낸다고 한다.
VM으로 한다고 하면... 파일 공유는 어떻게 할까???
도커는 virtiofs 라는 메커니즘을 기본으로 사용하는데 이 메커니즘이 호스트와 도커 데스트탑 VM과의 파일 공유를 가능하게 한다고 한다. (관련 이하 내용은 아직 이해가 잘 되지 않아 패스...)
리눅스 컨테이너를 도커 데스크탑은 어디에 보관하나??
도커 데스크탑은 컨테이너와 이미지를 "디스크 이미지"에 넣어 리눅스 파일 시스템에 저장한다고 한다. 도커 데스크탑과 달리 일반적으로 도커는 호스트의 '/var/lib/docker' 폴더에 저장한다.
그래서 디스크 이미지는 어디에 있나??
도커 대시보드에서 세팅을 누른 다음, Resources 탭의 Advenced를 보면 된다고 한다.
멈춘 컨테이너와 미사용중인 네트워크, 좀비가 된 이미지, 빌드 캐시를 삭제하는 명령어
docker system prune
'Docker' 카테고리의 다른 글
도커 이미지 빌드 시 캐시 활용 (feat: Image Layer) (0) | 2023.03.29 |
---|---|
DockerFile 문법 해석 (0) | 2023.03.29 |
도커 명령어 모음 (정리 중) (0) | 2023.03.20 |
도커) 8. 도커 컴포트 사용하기 (가이드 실행 결과) <Use Docker Compose> (0) | 2023.03.17 |
도커) 7. 다중 컨테이너 어플리케이션 (가이드 실행 결과) <Multi container apps> (0) | 2023.03.17 |