ฉันจะอัพเกรด Docker ได้อย่างไร


117

ฉันพิมพ์เวอร์ชัน docker.io และรับ:

Client version: 0.9.1
Go version (client): go1.2.1
Git commit (client): 3600720
Server version: 0.9.1
Git commit (server): 3600720
Go version (server): go1.2.1
Last stable version: 0.11.1, please update docker

ฉันทำตามนั้นด้วยapt-get updateอย่างใดอย่างหนึ่ง: apt-get upgradeหรือapt-get upgrade docker.ioแต่ทั้งหมดที่ให้ฉันคือ:

docker.io is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

ฉันใช้เซิร์ฟเวอร์ 64 บิต Ubuntu 14.04 (เชื่อถือได้)

แก้ไข: ฉันคิดว่าฉันใช้สคริปต์ในความคิดเห็นโพสต์นี้เพื่อติดตั้งนักเทียบท่า (เพราะมันอ้างว่าให้ฉันพิมพ์เพียงนักเทียบท่าแทน docker.io)


1
คุณติดตั้งนักเทียบท่าอย่างไร
jobin

ฉันไม่ทราบว่าวัตถุประสงค์ของสคริปต์นอกเหนือจากการเปลี่ยนชื่อไบนารี "docker.io" เป็นเพียงแค่ "นักเทียบท่า" คืออะไร
Braiam

@Braiam: ฉันก็ไม่แน่ใจเหมือนกัน แต่เนื่องจากฉันไม่คุ้นเคยกับ linux O / S ฉันจึงหวังว่าจะทำสิ่งที่มีประโยชน์มากกว่านั้น (หรือบางทีนี่อาจเป็นวิธีที่ดีกว่าการเปลี่ยนชื่อไบนารี )
Gerrat

คำตอบ:


145

สมมติว่าเป็น Ubuntu Trusty (14.04) ซึ่งมี 0.9.1 อย่างเป็นทางการ

อัปเดตอีกครั้งในปี 2017/03/50เพื่อให้สอดคล้องกับการเปลี่ยนแปลงในรีลีสใหม่โปรดดูhttps://blog.docker.com/2017/03/docker-enterprise-edition/

คำแนะนำอย่างเป็นทางการอยู่ที่นี่ติดตั้งตัวเทียบท่าสำหรับ Ubuntuรุ่นเก่ามีชื่อแพ็คเกจต่างกัน

  • docker.io: ถูกใช้เป็นรุ่นเก่ามากในค่าเริ่มต้น ubuntu repo (สามารถข้ามได้ที่นี่)
  • docker-engine: ใช้ก่อนปล่อย 1.13.x
  • docker-ce: ตั้งแต่ 17.03

สำหรับนักเทียบท่าเครื่องยนต์

# add the new gpg key
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
# add new repo
$ sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

จากนั้นคุณสามารถอัพเกรดเป็นนักเทียบท่ารุ่นล่าสุดได้อย่างราบรื่น

$ sudo apt-get update

# remove the old
$ sudo apt-get purge lxc-docker*

# install the new
$ sudo apt-get install docker-engine

และในกรณีที่คุณไม่ต้องการติดตั้งแพ็คเกจล่าสุดคุณสามารถทำสิ่งต่อไปนี้

$ sudo apt-get install docker-engine=1.7.1-0~trusty

สำหรับนักเทียบท่า -CE

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce

3
คุณมีข้อดี / ข้อเสียของการใช้วิธีนี้กับสิ่งที่ฉันพบว่าติดตั้งจาก htts: //get.docker.io หรือไม่ ฉันคิดว่าโดเมนจากโดเมนนักเทียบท่าที่แท้จริงดูเหมือนจะเป็นทางการมากขึ้น แต่ถ้าเป็นคนเดียวกันกับผู้ดูแล ppa นักเทียบท่า / ทดสอบแล้วอาจจะไม่สำคัญ
Gerrat

ฉันไม่รู้ลิงค์สำหรับวิธีการของคุณค่อนข้างเก่า PPA เป็นตัวเลือกที่ดีสำหรับผู้ใช้ Ubuntu และสิ่งนี้มาจากทีมผู้ดูแลรักษา Docker Ubuntu มันยังไว้ใจได้ อาจเป็นอย่างที่คุณพูดคนเดียวกันกับวิธีที่ดีกว่าในการให้บริการชุมชน ;-)
Larry Cai

1
---------- ขาย!
Gerrat

@Gerrat ดูเหมือนจะกลับมาแก้ปัญหาของคุณอีกครั้งถ้าเป็น 1.0 ตอนนี้
Larry Cai

3
gpg: no writable keyring found: eof-> ใช้ sudo ...
Michael Cole

22

คำเตือน:เนื่องจากนี่เป็นโพสต์ที่เก่ากว่าโปรดใช้กับแหล่งข้อมูลทางการเพื่อป้องกันปัญหา: https://www.docker.com/community-edition#/download


วิธีหนึ่งในการอัปเกรดเป็นเวอร์ชันล่าสุด (โดยไม่ต้องติดตั้งจากแหล่งที่มา) คือการใช้คำแนะนำที่นี่โดย Digital Ocean:

  1. เพิ่มคีย์ที่เก็บข้อมูลนักเทียบท่าเพื่อคีย์ apt-key

    sudo sh -c "wget ​​-qO- https://get.docker.io/gpg | apt-key add -"
  2. เพิ่มที่เก็บนักเทียบท่าลงในแหล่งที่มาของความถนัด:

    sudo sh -c "echo deb http://get.docker.io/ubuntu docker main \> /etc/apt/sources.list.d/docker.list"
  3. อัพเดตที่เก็บด้วยการเพิ่มใหม่:

    อัปเดตความถนัด sudo
  4. ในที่สุดดาวน์โหลดและติดตั้งนักเทียบท่า:

    sudo aptitude ติดตั้ง lcc-docker

1
อย่างไรก็ตามนี่หมายความว่าคุณกำลังตัดสินใจใช้เวอร์ชันอัปสตรีมที่เสถียรน้อยลง ตัวอย่างเช่นหลังจากอัปเกรดเป็น upstream docker 1.1.0 ฉันเริ่มเห็นข้อผิดพลาดDriver aufs failed to remove root filesystem เมื่อลบคอนเทนเนอร์บางตัว ฉันไม่เคยเห็นสิ่งนี้มาพร้อมกับแพ็กเกจ docker.io ซึ่งน่าจะทดสอบและเสถียรกว่าใน Trusty
Sridhar Ratnakumar

1
@Sridhar: เห็นด้วย ... อย่างไรก็ตามเหตุผลดั้งเดิมของฉันสำหรับการอัพเกรดก็คือเวอร์ชั่น "ทดสอบแล้วและเสถียร" ในปัจจุบันนั้นขาดฟังก์ชั่นหลักบางอย่าง (จำไม่ได้ว่าตอนนี้) หรือมีข้อบกพร่องที่แสดงให้ฉันดู ... และการร้องเรียนของคุณโดยเฉพาะดูเหมือนว่าจะเป็นข้อผิดพลาดที่มีอยู่ในขณะนี้: ดูข้อบกพร่องสามข้อที่อ้างอิงที่ด้านล่างของหน้านี้: coderwall.com/p/h24pgw
Gerrat

ใช้ทรัพยากรอย่างเป็นทางการสำหรับการติดตั้งสิ่งเหล่านี้ล้าสมัย ... docker.com/community-edition#/download
schlenger

12

คำตอบสั้น ๆ : ตอนนี้เอกสารการติดตั้ง Dockerอย่างเป็นทางการครอบคลุมสิ่งนี้สำหรับ Ubuntu 14.04 (แม้ว่าจะไม่ชัดเจนเท่าที่ควร)

แพคเกจ Ubuntuชื่อdocker.ioจะไม่รักษาโดยการเทียบท่า, Inc และจะล้าหลังเวอร์ชันล่าสุด ยกตัวอย่างเช่นในวันนี้ก็ติดอยู่ที่และล่าสุดคือ0.9.1 1.0.1ฉันจะไปข้างหน้าและลบสิ่งนี้ถ้าคุณมี

แพคเกจหางเป็นชื่อlxc-docker(พลุกพล่านตั้งแต่ LXC จะไม่เคร่งครัดจำเป็น) อย่างไรก็ตามมันเป็นข้อมูลล่าสุด คุณจะต้องเพิ่ม repo ที่เป็นเจ้าของ Docker ลงในapt-getการตั้งค่าของคุณ เอกสารการติดตั้ง Dockerอย่างเป็นทางการครอบคลุมสิ่งนี้สำหรับ Ubuntu 14.04 - มองหา "หากคุณต้องการลอง Docker รุ่นล่าสุด" หมายเหตุไบนารีจะเป็นdocker(ตรงข้ามกับdocker.ioเมื่อจัดทำโดย Ubuntu)



8

คุณสามารถติดตั้งจากที่เก็บของบุคคลที่สามโดยทำตามคำแนะนำ :

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker

4

คุณมีรุ่นล่าสุดของ docker.io (0.9.1) ซึ่งมีอยู่ในที่เก็บของ Ubuntu สำหรับ Trusty Tahr ณ วันนี้

อย่างไรก็ตามหากคุณยังต้องการอัพเกรดรุ่นคุณสามารถโคลน docker.io เวอร์ชันล่าสุดได้จาก github และคอมไพล์ใหม่ สำหรับคำแนะนำเกี่ยวกับการติดตั้งจากแหล่งที่มีการกวดวิชาแบบโต้ตอบบนบล็อกของ docker.io


ขอบคุณ แต่ฉันเพิ่งทำแบบฝึกหัดเชิงโต้ตอบ มันบอกว่าไม่มีอะไรเกี่ยวกับการติดตั้งจากแหล่ง - เพียงผ่านคำสั่งนักเทียบท่าขั้นพื้นฐานบางอย่าง
Gerrat

เหตุผลที่ฉันต้องการรุ่นที่ใหม่กว่าคือมันเป็นระเบิดอย่างสมบูรณ์พยายามที่จะเรียกใช้ภาพที่นำเข้า ภาพทำงานได้ดีในเวอร์ชันเสถียรล่าสุด: 0.11.1 ฉันใช้เวอร์ชั่นล่าสุดที่เสถียรในเครื่องอื่นและฉันไม่แน่ใจว่าฉันได้รับมาอย่างไร แต่ก็ไม่น่าที่ฉันจะรวบรวมจากแหล่งที่มา อาจมีเพียงที่เก็บอื่นที่มีรุ่นเสถียรล่าสุดที่?
Gerrat

คุณมีประโยชน์ในการปรับแต่งหน่วยความจำของฉันเกี่ยวกับวิธีการติดตั้งเวอร์ชันล่าสุด
Gerrat

1

หรือเพียงแค่sudo apt-get install -f docker-ceรับความเสถียรล่าสุด


สิ่งนี้ไม่ได้ผลสำหรับฉัน - ฉันได้รับ -E: Package 'docker-ce' has no installation candidate
Alexander Mills

0

คุณยังสามารถดาวน์โหลดdocker.io 0.11.1 .debไฟล์จากLaunchpadและติดตั้ง

wget https://launchpad.net/~docker-maint/+archive/testing/+files/docker.io_0.11.1%7Edfsg1-1%7Eppa1%7Etrusty1_amd64.deb

sudo dpkg -i docker.io_0.11.1~dfsg1-1~ppa1~trusty1_amd64.deb

น่าสนใจ ดูเหมือนว่าเพิ่งจะตั้งขึ้นเมื่อไม่กี่สัปดาห์ที่ผ่านมา
Gerrat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.