반응형
Docker Buildx를 사용하여 다중 아키텍처 이미지를 빌드하는 방법
테스트 환경
$ docker --version
Docker version 24.0.2, build cb74dfc
Docker Desktop 설정
Docker Desktop을 실행한 후, Docker Desktop 메뉴를 열고 "Settings"를 선택합니다. "Settings"에서 "Docker Engine" 탭을 선택하고 experimental 옵션을 추가합니다.
"experimental": true
다중 아키텍처 이미지 빌드
buildx 활성화된 상태
docker buildx
$ docker buildx
Usage: docker buildx [OPTIONS] COMMAND
Extended build capabilities with BuildKit
Options:
--builder string Override the configured builder instance
Management Commands:
imagetools Commands to work on images in registry
Commands:
bake Build from a file
build Start a build
create Create a new builder instance
du Disk usage
inspect Inspect current builder instance
ls List builder instances
prune Remove build cache
rm Remove a builder instance
stop Stop builder instance
use Set the current builder instance
version Show buildx version information
Run 'docker buildx COMMAND --help' for more information on a command.
buildx 버전 확인
$ docker buildx version
github.com/docker/buildx v0.10.5 86bdced7766639d56baa4c7c449a4f6468490f87
builder instance 확인
docker buildx ls
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
default error
desktop-linux * docker
desktop-linux desktop-linux running v0.11.7-0.20230525183624-798ad6b0ce9f linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
Cannot load builder default: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- PLATFORMS: linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
Buildx 설치
Buildx는 Docker CLI의 확장 기능입니다. 다음 명령어를 사용하여 Buildx를 설치합니다.
docker buildx install
Buildx 초기화
Buildx를 초기화하여 멀티 플랫폼 빌드를 위한 빌더 인스턴스를 생성합니다. 다음 명령어를 사용하여 Buildx를 초기화합니다.
docker buildx create --name mybuilder
docker buildx use mybuilder
728x90
현재 builder instance 정보
docker buildx inspect --bootstrap
$ docker buildx inspect --bootstrap
[+] Building 2.6s (1/1) FINISHED
=> [internal] booting buildkit 2.6s
=> => pulling image moby/buildkit:buildx-stable-1 2.2s
=> => creating container buildx_buildkit_mybuilder0 0.4s
Name: mybuilder
Driver: docker-container
Last Activity: 2023-06-02 15:08:41 +0000 UTC
Nodes:
Name: mybuilder0
Endpoint: desktop-linux
Status: running
Buildkit: v0.11.6
Platforms: linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
이미지를 빌드 명령 실행: Dockerfile을 실행하여 이미지를 빌드합니다.
docker buildx build --platform linux/amd64,linux/arm64 --tag anti1346/ubuntu2204:latest . --no-cache
이미지를 레지스트리에 푸시: 이미지를 빌드하고 나서 --push 옵션을 추가하여 이미지를 레지스트리에 푸시합니다.
docker buildx build --platform linux/amd64,linux/arm64 --tag anti1346/ubuntu2204:latest --push .
이미지를 도커에 로드: 이미지를 빌드하고 나서 --load 옵션을 추가하여 이미지를 도커에 로드합니다.
docker buildx build --platform linux/amd64,linux/arm64 --tag anti1346/ubuntu2204:latest --load .
다중 아키텍처 이미지 확인
docker buildx imagetools inspect anti1346/ubuntu2204:latest
$ docker buildx imagetools inspect anti1346/ubuntu2204:latest
Name: docker.io/anti1346/ubuntu2204:latest
MediaType: application/vnd.docker.distribution.manifest.v2+json
Digest: sha256:6d15a72a660a1fa121c1f342c26a24d77e135dd139f1d473f34f6bcfb3531bac
다중 아키텍처 이미지 풀(Pull)
docker pull anti1346/ubuntu2204:go
도커 컨테이너 실행
docker run -it --rm --name go anti1346/ubuntu2204:go bash
Buildx instance 삭제
docker buildx rm mybuilder
Docker Buildx 캐시 초기화
docker buildx prune --force
728x90
반응형
'맥(솔라리스)' 카테고리의 다른 글
Mac에서 Oh My Zsh를 수동으로 업데이트하는 방법 (0) | 2023.06.06 |
---|---|
macOS에서 mDNSResponder를 재시작하고 DNS 캐시를 갱신 (0) | 2023.06.04 |
[mac] mac m1 no matching manifest for linux/arm64/v8 in the manifest list entries (0) | 2023.05.21 |
[mac] vscode 파이썬 가상환경 설정하기(python virtualenv) (0) | 2023.01.05 |
Mac Apple Silicon에서 VirtualBox를 설치하는 방법 (0) | 2022.11.23 |