Debian jessie용 공식 Docker 패키지는 없습니다. 백포트가 있고 설치했지만 시작하면 컨테이너 실행과 같은 중요한 작업에 오류가 발생합니다.
인터넷에 제안된 솔루션이 있습니다(Debian docker 설치와 관련하여): deb https://get.docker.com/ubuntu docker main
resources.list에 추가한 후:
sudo apt-get update
sudo apt-get install lxc-docker
Docker는 패키지가 Ubuntu 및 Debian에서 실행되도록 보장하는 것 같습니다(댓글에서 읽었습니다).
실제로 이 설치는 내 Ubuntu 14.04 노트북에서 제대로 작동하며 docker는 컨테이너를 제대로 실행합니다.
그러나 Debian jessie를 사용하여 서버에서 동일한 작업을 시도하면 docker를 설치할 수 없습니다.
myuser@srv:~$ sudo apt-get install lxc-docker
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package lxc-docker
또한 오래된 docker 패키지의 이름인 docker.io 패키지 이름을 사용해 보았습니다.
myuser@srv:~$ sudo apt-get install docker.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package docker.io is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'docker.io' has no installation candidate
무엇이 잘못될 수 있는지 아시나요?
이것은 내가 넣은 docker.list 파일입니다 /etc/apt/sources.list.d
.
deb https://get.docker.com/ubuntu docker main
권한은 정상적으로 보입니다.
$ ls -l /etc/apt/sources.list.d/docker.list
-rw-r--r-- 1 root root 46 Sep 20 17:26 docker.list
제안한 대로 docker.io 백포트 패키지를 다시 설치했는데 오류가 발생했습니다.
컨테이너를 시작할 수 없습니다.
myuser@srv:/etc/apt/sources.list.d$ sudo docker run --rm hello-world
FATA[0000] Post http:///var/run/docker.sock/v1.18/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
sudo apt-get remove
하지만 더 나쁜 점은 이제 docker.io에서 패키지를 백포트하는 것이 불가능하다는 것입니다.
Removing docker.io (1.6.2~dfsg1-1~bpo8+1) ...
[....] Stopping Docker: dockerstart-stop-daemon: warning: failed to kill 23321: No such process
1 pids were not killed
No process in pidfile '/var/run/docker-ssd.pid' found running; none killed.
invoke-rc.d: initscript docker, action "stop" failed.
dpkg: error processing package docker.io (--remove):
subprocess installed pre-removal script returned error exit status 1
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
docker.io
E: Sub-process /usr/bin/dpkg returned an error code (1)
그리고 패키지는 절대 제거되지 않습니다. 그래서 어제 데비안을 다시 설치하고 도커 지향 솔루션에 기회를 주기로 결정했습니다. deb https://get.docker.com/ubuntu docker main
이는 다음 질문과 관련이 있을 수 있습니다.docker가 작동한 적이 없으면 제거할 수 없습니다.
위 링크 덕분에 docker.io 패키지 제거를 방해하는 원인은 제거 전 스크립트에 있습니다.
/var/lib/dpkg/info/docker.io.prerm
나는 그것을 수정하여 docker stop
다음을 수행하려는 3줄을 주석 처리했습니다.
# Automatically added by dh_installinit
#if [ -x "/etc/init.d/docker" ] && [ "$1" = remove ]; then
# invoke-rc.d docker stop || exit $?
#fi
그리고 패키지도 깔끔하게 제거되었습니다. (이것 때문에 어제 데비안을 다시 설치하는 것은 정말 야만인이었습니다...)
답변1
Debian jessie용 패키지가 있다고 확신 docker.io
하지만 이를 활성화해야 합니다 jessie-backports
.
활성화하려면 jessie-backports
파일에 다음 줄을 추가하면 됩니다 /etc/apt/sources.list
.
deb http://http.debian.net/debian jessie-backports main
그런 다음 패키지 저장소를 업데이트합니다.
$> sudo apt-get update
이제 패키지를 설치할 수 있습니다 docker.io
.
$> sudo apt-get install docker.io
이 작업을 완료한 후에는 다음을 통해 모든 것이 제대로 작동하는지 확인할 수 있습니다.
$> sudo docker run --rm hello-world
제가 설명한 내용의 요약은 여기에서 확인하실 수 있습니다.이 페이지.