바이너리에서 Docker Engine 설치하기
바이너리에서 Docker Engine 설치하기 (Install Docker Engine from binaries)
Important 이 페이지는 바이너리로 Docker를 설치하는 방법에 대한 정보를 담고 있어요. 이 지침은 대부분 테스트 목적에 적합해요. 바이너리는 자동 보안 업데이트가 없으므로 프로덕션 환경에서 바이너리로 Docker를 설치하는 것은 권장하지 않아요. 이 페이지에 설명된 Linux 바이너리는 정적으로 링크되어 있어, 빌드 타임 의존성의 취약점이 Linux 배포판의 보안 업데이트로 자동 패치되지 않아요. 또한 패키지 매니저나 Docker Desktop으로 설치된 Docker 패키지에 비해 바이너리 업데이트가 조금 더 복잡한데, Docker의 새 릴리스가 나올 때마다 설치된 버전을 (수동으로) 업데이트해야 하기 때문이에요. 또한 정적 바이너리는 동적 패키지가 제공하는 모든 기능을 포함하지 않을 수 있어요. Windows와 Mac에서는 Docker Desktop을 설치할 것을 권장해요. Linux에서는 배포판에 맞는 지침을 따를 것을 권장해요.
출처: 문서
본문
Docker를 시도하거나 테스트 환경에서 사용하고 싶지만 지원 플랫폼이 아니라면 정적 바이너리에서 설치할 수 있어요. 가능하다면 운영 체제용으로 빌드된 패키지를 사용하고, 운영 체제의 패키지 관리 시스템으로 Docker 설치와 업그레이드를 관리해야 해요.
Docker 데몬 바이너리의 정적 바이너리는 Linux(dockerd)와 Windows(dockerd.exe)에서만 사용할 수 있어요. Docker 클라이언트의 정적 바이너리는 Linux, Windows, macOS(docker)에서 사용할 수 있어요.
이 주제는 Linux, Windows, macOS의 바이너리 설치를 다뤄요:
- Linux에 데몬과 클라이언트 바이너리 설치
- macOS에 클라이언트 바이너리 설치
- Windows에 서버와 클라이언트 바이너리 설치
Linux에 데몬과 클라이언트 바이너리 설치 (Install daemon and client binaries on Linux)
사전 요구 사항 (Prerequisites)
바이너리에서 Docker를 설치하기 전에 호스트 머신이 사전 요구 사항을 충족하는지 확인하세요:
- 64비트 설치
- Linux 커널 버전 3.10 이상. 플랫폼에서 사용 가능한 최신 커널 버전이 권장돼요.
iptables버전 1.4 이상git버전 1.7 이상ps실행 파일, 보통procps또는 유사한 패키지가 제공해요.- XZ Utils 4.9 이상
- 제대로 마운트된
cgroupfs계층. 단일의 모든 것을 포함하는cgroup마운트포인트는 충분하지 않아요. Github 이슈 #2683, #3485, #4568 참고.
환경을 최대한 안전하게 (Secure your environment as much as possible)
OS 고려 사항 (OS considerations)
가능하면 SELinux나 AppArmor를 활성화해요.
Linux 배포판이 둘 중 하나를 지원한다면 AppArmor나 SELinux를 사용하는 것이 권장돼요. 이는 보안을 개선하고 특정 유형의 공격을 차단해요. AppArmor나 SELinux를 활성화·구성하는 지침은 Linux 배포판의 문서를 참고하세요.
보안 경고 두 보안 메커니즘 중 하나라도 활성화되어 있으면, Docker나 그 컨테이너를 실행시키기 위한 임시 해결책으로 비활성화하지 마세요. 대신 올바르게 구성해 문제를 해결하세요.
Docker 데몬 고려 사항 (Docker daemon considerations)
- 가능하면
seccomp보안 프로필을 활성화해요. Docker용seccomp활성화 참고. - 가능하면 사용자 네임스페이스를 활성화해요. Daemon user namespace options 참고.
정적 바이너리 설치 (Install static binaries)
- 정적 바이너리 아카이브를 다운로드해요. https://download.docker.com/linux/static/stable/로 이동해 하드웨어 플랫폼을 선택하고, 설치하려는 Docker Engine 버전에 해당하는
.tgz파일을 다운로드해요. tar유틸리티로 아카이브를 추출해요.dockerd와docker바이너리가 추출돼요.
$ tar xzvf /path/to/<FILE>.tar.gz
- 선택 사항: 바이너리를
/usr/bin/같은 실행 경로의 디렉토리로 이동해요. 이 단계를 건너뛰면docker또는dockerd명령을 호출할 때 실행 파일의 경로를 제공해야 해요.
$ sudo cp docker/* /usr/bin/
- Docker 데몬을 시작해요:
$ sudo dockerd &
추가 옵션으로 데몬을 시작해야 한다면 위 명령을 그에 맞게 수정하거나 /etc/docker/daemon.json 파일을 만들고 편집해 사용자 지정 구성 옵션을 추가해요.
hello-world이미지를 실행해 Docker가 올바르게 설치되었는지 확인해요.
$ sudo docker run hello-world
이 명령은 테스트 이미지를 다운로드해 컨테이너에서 실행해요. 컨테이너가 실행되면 메시지를 출력하고 종료해요.
이제 Docker Engine을 성공적으로 설치하고 시작했어요.
Tip root 없이 실행하려 할 때 오류가 발생하나요?
docker사용자 그룹이 존재하지만 사용자가 없어서 Docker 명령에sudo를 사용해야 해요. 비특권 사용자가 Docker 명령을 실행하고 기타 선택 구성 단계를 수행하려면 Linux postinstall을 계속 보세요.
macOS에 클라이언트 바이너리 설치 (Install client binaries on macOS)
Note 다음 지침은 대부분 테스트 용도에 적합해요. macOS 바이너리는 Docker 클라이언트만 포함해요. 컨테이너 실행에 필요한
dockerd데몬은 포함하지 않아요. 따라서 Docker Desktop을 설치할 것을 권장해요.
Mac용 바이너리에는 또 다음도 포함되지 않아요:
- 런타임 환경. Virtual Machine 안이나 원격 Linux 머신에 기능하는 엔진을 설정해야 해요.
buildx와docker compose같은 Docker 구성 요소.
클라이언트 바이너리를 설치하려면 다음 단계를 수행해요:
- 정적 바이너리 아카이브를 다운로드해요. https://download.docker.com/mac/static/stable/로 이동해
x86_64(Intel 칩 Mac) 또는aarch64(Apple silicon Mac)를 선택한 다음, 설치하려는 Docker Engine 버전에 해당하는.tgz파일을 다운로드해요. tar유틸리티로 아카이브를 추출해요.docker바이너리가 추출돼요.
$ tar xzvf /path/to/<FILE>.tar.gz
- 확장 속성을 지워 실행할 수 있게 해요.
$ sudo xattr -rc docker
이제 다음 명령을 실행하면 Docker CLI 사용 지침을 볼 수 있어요:
$ docker/docker
- 선택 사항: 바이너리를
/usr/local/bin/같은 실행 경로의 디렉토리로 이동해요. 이 단계를 건너뛰면docker또는dockerd명령을 호출할 때 실행 파일의 경로를 제공해야 해요.
$ sudo cp docker/docker /usr/local/bin/
hello-world이미지를 실행해 Docker가 올바르게 설치되었는지 확인해요.<hostname>값은 Docker 데몬을 실행하고 클라이언트가 접근할 수 있는 호스트 이름 또는 IP 주소예요.
$ sudo docker -H <hostname> run hello-world
이 명령은 테스트 이미지를 다운로드해 컨테이너에서 실행해요. 컨테이너가 실행되면 메시지를 출력하고 종료해요.
Windows에 서버와 클라이언트 바이너리 설치 (Install server and client binaries on Windows)
Note 다음 섹션은 Windows 컨테이너만 실행할 수 있는 Windows Server에 Docker 데몬을 설치하는 방법을 설명해요. Windows Server에 Docker 데몬을 설치하면 데몬에
buildx와compose같은 Docker 구성 요소가 포함되지 않아요. Windows 10 또는 11을 실행 중이라면 Docker Desktop을 설치할 것을 권장해요.
Windows의 바이너리 패키지에는 dockerd.exe와 docker.exe가 모두 포함돼 있어요. Windows에서 이 바이너리는 네이티브 Windows 컨테이너만 실행할 수 있는 기능을 제공해요(Linux 컨테이너는 불가).
서버와 클라이언트 바이너리를 설치하려면 다음 단계를 수행해요:
- 정적 바이너리 아카이브를 다운로드해요. https://download.docker.com/win/static/stable/x86_64로 이동해 목록에서 최신 버전을 선택해요.
- 다음 PowerShell 명령을 실행해 아카이브를 프로그램 파일에 설치·추출해요:
PS C:\> Expand-Archive /path/to/<FILE>.zip -DestinationPath $Env:ProgramFiles
- 서비스를 등록하고 Docker Engine을 시작해요:
PS C:\> &$Env:ProgramFiles\Docker\dockerd --register-service
PS C:\> Start-Service docker
hello-world이미지를 실행해 Docker가 올바르게 설치되었는지 확인해요.
PS C:\> &$Env:ProgramFiles\Docker\docker run hello-world:nanoserver
이 명령은 테스트 이미지를 다운로드해 컨테이너에서 실행해요. 컨테이너가 실행되면 메시지를 출력하고 종료해요.
정적 바이너리 업그레이드 (Upgrade static binaries)
Docker Engine의 수동 설치를 업그레이드하려면 먼저 로컬에서 실행 중인 dockerd 또는 dockerd.exe 프로세스를 중지한 다음, 일반 설치 단계를 따라 기존 버전 위에 새 버전을 설치해요.
다음 단계 (Next steps)
- Linux용 사후 설치 단계 계속하기