docker-ce 및 docker-ee와 관련하여 docker.io는 무엇입니까?


119

이전에는 Docker를 설치하려면

apt-get install docker.io

그러나 최근에 docker 설치에 대한 문서를 발견했으며 docker-ce를 사용합니다. 나는 둘 사이의 차이점을 찾으려고 노력했지만 비어 있습니다. docker-ce와 관련하여 docker.io는 무엇입니까?


1
@zerkms 공식 도커 웹 사이트에 docker.io에 대한 언급이 없기 때문에 혼란 스러웠습니다. 감가 상각입니까?
Will Parzybok은

1
docker.io패키지는 우분투 개발자가 관리합니다. Ubuntu 개발자는 "공식 도커 웹 사이트"와 관련이 없습니다. 따라서 docker 웹 사이트가 참조하지 않는다는 사실은 기본적으로 아무것도 의미하지 않습니다.
zerkms

1
@zerkms docker.io는 최신 버전입니까?
Will Parzybok은

1
확인하고 보십니까? packages.ubuntu.com/…
zerkms

이제 완전히 다시 작동합니다!
thoni56

답변:


73

이전 버전의 Docker 바이너리는 docker 또는 docker-engine 또는 docker-io라고 불렀습니다.

docker-io 패키지는 공식 저장소 에서 제공되는 docker 릴리스 용으로 Debian / Ubuntu에서 여전히 사용하는 이름 입니다.

docker-cedocker.com에서 직접 제공하는 인증 릴리스 이며 source에서 빌드 할 수도 있습니다 .

Debian / Ubuntu 플랫폼에서 docker-io라는 이름을 사용하는 주된 이유는 이름이 docker system-tray 바이너리와 충돌하지 않도록하기 위해서입니다.

http://manpages.ubuntu.com/manpages/precise/man1/docker.1.html

Docker에는 엔터프라이즈 버전 (EE)과 무료 커뮤니티 에디션 버전 (CE)이 있습니다.

Docker Community Edition (docker.com의 docker-ce)을 설치하기 전에 이전 바이너리를 제거해야 할 수 있습니다.

Centos / RHL :

https://docs.docker.com/engine/installation/linux/docker-ce/centos/

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Ubuntu / Debian :

https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/

$ sudo apt-get remove docker docker-engine docker.io containerd runc

우분투의 드라 이런 비교 :

$ sudo apt-get install docker.io --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  bridge-utils cgroupfs-mount containerd pigz runc ubuntu-fan
Suggested packages:
  ifupdown aufs-tools debootstrap docker-doc rinse zfs-fuse | zfsutils
The following NEW packages will be installed:
  bridge-utils cgroupfs-mount containerd docker.io pigz runc ubuntu-fan
0 upgraded, 7 newly installed, 0 to remove and 70 not upgraded.
Inst pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Inst bridge-utils (1.5-15ubuntu1 Ubuntu:18.04/bionic [amd64])
Inst cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Inst runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst containerd (1.2.6-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst docker.io (18.09.7-0ubuntu1~18.04.4 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Inst ubuntu-fan (0.12.10 Ubuntu:18.04/bionic [all])
Conf pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Conf bridge-utils (1.5-15ubuntu1 Ubuntu:18.04/bionic [amd64])
Conf cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Conf runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf containerd (1.2.6-0ubuntu1~18.04.2 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf docker.io (18.09.7-0ubuntu1~18.04.4 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf ubuntu-fan (0.12.10 Ubuntu:18.04/bionic [all])

$ sudo apt-get install docker-ce --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  aufs-tools cgroupfs-mount containerd.io docker-ce-cli libltdl7 pigz
The following NEW packages will be installed:
  aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli libltdl7 pigz
0 upgraded, 7 newly installed, 0 to remove and 70 not upgraded.
Inst pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Inst aufs-tools (1:4.9+20170918-1ubuntu1 Ubuntu:18.04/bionic [amd64])
Inst cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Inst containerd.io (1.2.10-3 Docker CE:bionic [amd64])
Inst docker-ce-cli (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Inst docker-ce (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Inst libltdl7 (2.4.6-2 Ubuntu:18.04/bionic [amd64])
Conf pigz (2.4-1 Ubuntu:18.04/bionic [amd64])
Conf aufs-tools (1:4.9+20170918-1ubuntu1 Ubuntu:18.04/bionic [amd64])
Conf cgroupfs-mount (1.4 Ubuntu:18.04/bionic [all])
Conf containerd.io (1.2.10-3 Docker CE:bionic [amd64])
Conf docker-ce-cli (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf docker-ce (5:19.03.5~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf libltdl7 (2.4.6-2 Ubuntu:18.04/bionic [amd64])

고정 표시기-CE 바이너리는 최신 버전을하고 고정 표시기-CE-CLI를 포함하는 경향이있다.


1
@Ivolmar 대단히 감사합니다. 그렇다면 최신 버전 중 하나에 docker.io를 사용하는 것은 어리석은 일입니까?
Will Parzybok은

3
@WillParzybok 맞습니다. Debian 또는 Ubuntu 버전에 따라 새 CE 버전을 설치하고 이전 버전 바이너리를 제거 할 수 있어야합니다.
lvolmar

2
Ubuntu 19.04에서 docker.io 버전은 docker-ce (18.09.5 v. 18.06.3)보다 약간 앞서 있습니다. 벤더 릴리스 및 ppa는 일반적으로 Ubuntu 릴리스보다 앞서 있습니다. ce over io 사용에 대한 조언이 여전히 적용되는지에 대한 의견이 감사합니다.
Reece 2019 년

7
2019-May-21 혼란스러워 ... Ubuntu 18.04에서 무엇을 사용해야합니까? apt-get install docker.iodocker-ce를 설치하기 위해 10 단계 이상을 수행하는 것보다 훨씬 더 편안해 보입니다 :(
Wlad

1
방금 apt install docker.io했고 Docker version 18.09.2, build 6247962... 그래서 docker-ce와의 거래는 무엇입니까? 나는 우분투가 나에게주는 것을 받아들입니다.
Wlad

120

docker-ce를 조심하십시오

허용되는 대답은 복잡하지 않습니다.

docker-cedocker.com에서 docker.io제공하고 Debian에서 제공합니다.

표면에서이 수단을 설치할 수 있습니다 docker.io에있는 동안, rightaway docker-ce당신이 docker.com beforehands에서 외부 저장소를 연결해야합니다.

그러나 더 중요한 것은 두 패키지 모두 적절하게 출시 된 Docker 버전을 제공하지만 내부 구조매우 다릅니다 .

  • docker.io데비안 (또는 우분투) 방식으로 수행합니다. 각 외부 종속성은 독립적으로 업데이트 될 수 있고 업데이트 될 개별 패키지 입니다.
  • docker-ceGolang 방식으로 수행합니다. 모든 종속성은 빌드 전에 소스 트리 로 가져 오고 이후에는 전체가 하나의 단일 패키지를 형성합니다. 따라서 항상 모든 종속성으로 docker를 한 번에 업데이트합니다.

후자의 접근 방식의 문제점은 데비안 / 우분투가하려는 작업의 대부분에 위배된다는 것입니다.

모두가 그렇게했다면 docker-ce...

... 시스템에 많은 라이브러리의 174 개 버전이있을 것입니다. 이는 많은 메모리를 소비 할뿐만 아니라 끔찍한 보안 취약점이있는 라이브러리 XYZ 버전 7.6.5를 가지고 있는지 여부를 결정하는 것을 본질적으로 불가능하게 만듭니다. 그들.
해당 취약점 (또는 보유한 모든 109 개 인스턴스)을 닫습니다.

설상가상으로 174 개 버전 중 하나는 3 년 전 XYZ 버전 5.4.3 일 가능성이 높습니다. 다른 버전은 매우 다르지만 세계가 오랫동안 잊고 있었지만 여전히 행복하게 존재할 것입니다. 시스템에서.

일부 비고 :

  • 많은 웹 페이지에서 docker.io"구식"이라고합니다. 그것은 약 1 년 동안 유지되지 않았기 때문입니다. 2019 년 8 월부터는 더 이상 그렇지 않습니다.
  • 나는 오늘 여기 에서이 모든 것을 배웠고 이제 사용에서 사용 docker-ce으로 전환 할 것 docker.io입니다. 그리고 아마도 다시는 돌아 가지 않을 것입니다.
  • 데비안 / 우분투 패키징 시스템이 그렇게 복잡한 데에는 이유가 있습니다. 좋은 이유입니다.

4
내 노드 중 2 개에서 docker-ce가 멈추고 docker.io가있는 다른 노드가 적절한 업그레이드 동안 살아남은 후이 답변을 찾았습니다.
Jingshao 첸

3
이것은 내가 좋아하는 데비안 / 우분투의 docker.io 패키지에 동조하게 만든다. 그 이상은 Dockerapt install -ce의 경우 항상 Docker 문서 로 이동 하여 설치 단계를 찾아야합니다.
Wlad

2
docker.io 사용의 보안 의미를 언급 할 수 있습니다. 유지 관리가 다시 종료 되 자마자 보안 패치를받지 못할 것이며 모든 보안 패치를 올바르게 백 포트하는 유지 관리자에 의존하지 않는 한 보안 패치를받을 수 없습니다.
Benni

2
docker-ce의 한 가지 장점은 인증 된 릴리스를 얻고 패키지가 번들 된 종속성과 함께 작동 할 것이라는 Docker 팀의 약속을 얻을 수 있다는 것입니다. 아마도 문제가있는 경우 손가락을 덜 가리킬 것입니다. docker.io의 데비안 관리자는 docker가 모든 종속 패키지의 최신 버전에서 실행된다는 것을 인증 합니까? 고정 표시기 팀은 그들의 시험 포장의 충분한 작업했던 어떤 다른 팀이 릴리스를 인증 할 수 있습니다? 여기에는 "최상의"솔루션이 없으며 위험의 균형 만 있으면 어떤 위험이 더 중요한지 선택해야합니다.
BobHy

@BobHy 동의합니다. Docker Inc. 가 다른 이유로 인해 정기적 (!) 업데이트를 중단하는 docker.io경우 개발 활동이없는 프로덕션 시스템 으로 전환하는 것을 잊지 마십시오 . 데비안은이 점에서 확고한 명성을 가지고 있습니다. 다시 한 번 업데이트를 중단해야 하더라도 많은 라이브러리는 여전히 그럴 것입니다. docker-cedocker.io
Lutz Prechelt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.