고쳐 쓰다:

고쳐 쓰다:

나는라즈베리 파이 2달리기라스피안(데비안 9 확장 암). 순수한 Debian Stretch Chroot 환경을 만들고 거기에 Docker를 설치하고 싶습니다. 나는 여기에서 올바른 지침을 모두 따랐습니다.https://docs.docker.com/install/linux/docker-ce/debian

설치 시간이 되면도커-ce, Aptitude에서는 일부 라이브러리(예: libc6)가 누락되었다고 말하지만 해당 라이브러리가 거기에 있고 인식되지 않는다고 생각합니다. 이것은 매우 간단한 과정처럼 보이지만 큰 장애물에 부딪혔습니다.

설치영상을 녹화해봤습니다 https://youtu.be/wMmZGxZOBbs

내가 실행한 명령은 다음과 같습니다(모두 루트로 실행).

mkdir d
debootstrap stretch d
mount -B /dev d/dev
mount -B /dev/pts d/dev/pts
mount -B /proc d/proc
mount -B /sys d/sys
chroot d /bin/bash

루트 이후

nano /etc/apt/sources.list # add contrib and non-free
apt-get update
apt-get install aptitude
apt-get install bash-completion
apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository \
   "deb [arch=armhf] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
apt-get update
apt-get install docker-ce # Fails, says package unavailable
aptitude # Try to install docker in aptitude shows missings libraries

적성 오류 화면

고쳐 쓰다:

편의 스크립트를 실행하면 다음과 같은 출력이 표시됩니다.

root@pi2:/# curl -fsSL https://get.docker.com -o get-docker.sh
root@pi2:/# sh get-docker.sh
# Executing docker install script, commit: 4957679
+ sh -c apt-get update -qq >/dev/null
+ sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sh -c echo "deb [arch=armel] https://download.docker.com/linux/debian stretch edge" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
E: Unable to locate package docker-ce

실행하면 apt-get update"아키텍처 'armel'이 지원되지 않습니다"라는 저장소가 표시됩니다.

업데이트 2

AB의 답변에 감사드립니다. 문제가 완전히 해결되지는 않을 수도 있지만 확실히 많은 진전이 있었습니다.

# ### Architecture Output from Debian Chroot
# dpkg --print-architecture
    armel

그리고

# ### Architecture Output from Raspian
# dpkg --print-architecture
    armhf
# lsb_release -cs # My system is up to date
    stretch
# debootstrap --arch=armhf stetch d
E: No such script: /usr/share/debootstrap/scripts/stetch

업데이트 3

다음 명령을 사용하여 데비안 아키텍처 Armhf를 설치할 수 있음을 발견했습니다.

# debootstrap --foreign --arch=armhf stretch dir

업데이트 4 솔루션

데비안 설치를 강제하여 아키텍처 armhf용 도커를 성공적으로 설치했습니다. 데비안을 아키텍처 armhf로 설치하기 위해 취한 단계는 다음과 같습니다.

mkdir d
debootstrap --foreign --arch=armhf stretch d
cat /etc/resolv.conf > d/etc/resolv.conf
chroot d /bin/bash
./debootstrap/debootstrap --second-stage
apt-get clean

그 후에는 데비안에 도커를 설치하는 일반적인 과정을 따랐습니다.

답변1

핵심요약: docker-ceDocker 패키지를 아키텍처에 설치할 수 없지만 armel시스템(Rasberry Pi 2)은 어쨌든 실행되어야 하므로 armhf설정에 문제가 있습니다.

부두 노동자의데비안 요구 사항:

운영 체제 요구 사항

Docker CE를 설치하려면 다음 Debian 또는 Raspbian 버전 중 하나의 64비트 버전이 필요합니다.

  • 버스터 10
  • 스트레치 9(안정)/라즈비안 스트레치

x86_64Docker CE는 (또는 amd64) armhf, 및 아키텍처에서 arm64 지원됩니다 . 이 텍스트는 armhf지원되고 32비트이므로 시스템에서 약간 오해의 소지가 있습니다 . 어쨌든, 귀하의 시스템이armel대신에 건축armhf, docker.com에는 사용 가능한 패키지가 없습니다. 그렇기 때문에 무엇을 시도하더라도 해당 가이드를 따르고 Docker를 설치할 수 없습니다.

먼저 확인할 수 있는 사항:

  • 시스템(chroot 외부)이 armelor를 사용하고 있는지 확인하십시오. 대답이 '예'이면 명령이 잘못된 것이므로 이 옵션을 사용하여 다시 시도해야 합니다.armhfdpkg --print-architecturearmhfdebootstrap--arch=armhf고쳐 쓰다: OP가 말한 내용이지만 --foreign필요한 것 같으므로 다음 명령이 수행됩니다.

    debootstrap --foreign --arch=armhf stretch d
    
  • 고쳐 쓰다:확인하다핵심핵심 이기도 합니다 armhf. 어딘가에 armv7(아마도 ) armv7l뭔가가 적혀 있나요? 아니면 그냥 arm아니면 armv6뭔가요? 커널만 올바르지 않을 수도 있습니다. armv7이 아닌 경우 변경을 고려해야 합니다. 그렇지 않으면 다른 플랫폼에서 재현 debootstrap할 수 없기 때문에 설명할 수 없는 오류입니다 .armhf


이 문제를 해결하기 위한 역사적 사상은 다음과 같다.

또 무엇을 할 수 있니?아마도, 하지만 어쨌든 쉽지는 않습니다. 다른 일을 하십시오.

  • 여기서의 어려움 범위를 넘어서는 또 다른 솔루션(실제로 지원되는 경우)은 armhfDocker를 설치하는 데 필요한 누락된 다중 아키텍처 라이브러리를 완료하는 것입니다.
  • 데비안은 아직 출시되지 않은 향후 데비안 10과 동등한 버전을 제공합니다.docker.io패키지, 사용 가능 armel(단, "amd64가 아닌 호스트에서 docker.io를 사용하는 것은 현재 지원되지 않습니다"라고 알려줍니다). 따라서 Raspbian이 출시되면 이 패키지를 사용할 수 있을 것이라고 상상할 수 있습니다. 어쨌든 최첨단 버전을 기대하지 마십시오.
  • 소스 코드에서 armel이 아키텍처에 대한 Docker 패키지를 재구성하는 것이 가능할 수도 있습니다. 그럼에도 불구하고 이를 위해서는 아직 보유하지 않은 지식이 필요합니다.

설치하더라도 armel추출하려는 모든 항목을 고려하십시오.도커스 센터호환되지 않습니다. Docker가 이를 제공하지 않으면 armel생태계 armel는 존재하지 않습니다.

관련 정보