배경 설명 최근 M1 Mac을 사용하면서 메모리 부족 문제와 ARM 아키텍처로 인해 X86 기반 머신에서 실행할 수 없는 이미지를 빌드하는 어려움을 겪었습니다. 이를 해결하기 위해 Docker 엔진과 클라이언트를 분리하여 사용하는 방법을 소개합니다.
스텝 1: Docker 클라이언트 파일 다운로드 M1 기반의 Mac에서는 aarch64 버전의 Docker 클라이언트 바이너리를 다운로드해야 합니다. 최신 버전을 선택하여 다운로드하세요. 다운로드 링크
스텝 2: Docker 서버 설치 및 구성 Docker 서버는 원격 머신 또는 개인 서버에 설치할 수 있습니다. API 포트를 열어야 클라이언트가 원격으로 접속할 수 있습니다.
원격 포트 설정 Docker 서비스 파일을 수정하여 원격 포트를 활성화합니다.
sudo vim /usr/lib/systemd/system/docker.service
아래와 같이 -H tcp://0.0.0.0:2375 옵션을 추가합니다:
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
서비스를 재시작합니다:
sudo systemctl daemon-reload
sudo systemctl restart docker
스텝 3: 환경 변수 설정 다운로드한 Docker 클라이언트 파일을 적절한 위치로 복사하고 권한을 부여합니다.
sudo cp ~/Downloads/docker /usr/local/bin/
sudo chmod +x /usr/local/bin/docker
.zshrc 파일에 다음 내용을 추가하여 원격 Docker 호스트를 지정합니다:
export DOCKER_HOST=tcp://<서버_아이피>:2375
또한 ~/.docker/config.json 파일을 수정하여 원격 연결 정보를 추가합니다:
{
"auths": {
"docker.cnblogs.com": {}
},
"credsStore": "desktop",
"currentContext": "default",
"hosts": ["tcp://<서버_아이피>:2375"]
}
스텝 4: 테스트 설정이 완료되었는지 확인하기 위해 아래 명령어를 실행합니다:
docker info
출력 결과를 통해 서버와 클라이언트 간 연결 상태를 확인할 수 있습니다.
스텝 5: 플러그인 설치 필요한 Docker 플러그인을 보완합니다. 두 가지 방법이 있습니다:
방법 1: GitHub에서 개별 다운로드 각 플러그인을 직접 다운로드하는 방식입니다. 하지만 네트워크 제약이 있을 수 있습니다.
방법 2: Docker Desktop 압축 해제 후 파일 복사 Docker Desktop을 다운로드하여 필요한 플러그인을 추출합니다. Docker Desktop 다운로드 링크
압축을 해제한 후, 다음과 같은 경로에 플러그인을 복사합니다:
/Users/<사용자명>/.docker/cli-plugins/
권한을 부여합니다:
sudo chmod +x /Users/<사용자명>/.docker/cli-plugins/*
재부팅 후 터미널에서 플러그인이 정상적으로 작동하는지 확인합니다.