Ubuntu Docker 装置

Docker Engine-Community 撑持以下的 Ubuntu 版本:

  • Xenial 16.04 (LTS)
  • Bionic 18.04 (LTS)
  • Cosmic 18.10
  • Disco 19.04
  • 其余更新的版本……

Docker Engine - Community 撑持上 x86_64(或 amd64)armhf,arm64,s390x (IBM Z),和 ppc64le(IBM的Power)架构。


卸载旧版本

Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。若是已装置,请卸载它们:

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

以后称为 Docker Engine-Community 软件包 docker-ce 。

装置 Docker Engine-Community,以下先容两种体例。


利用 Docker 堆栈停止装置

在新主机上初次装置 Docker Engine-Community 之前,须要设置 Docker 堆栈。以后,您能够从堆栈装置和更新 Docker 。

设置堆栈

更新 apt 包索引。

$ sudo apt-get update

装置 apt 依靠包,用于经由过程http来获得堆栈:

$ sudo apt-get install \
    apt-transport-http \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

增加 Docker 的官方 GPG 密钥:

$ curl -fsSL //download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 经由过程搜刮指纹的后8个字符,考证您此刻是不是具备带有指纹的密钥。

$ sudo apt-key fingerprint 0EBFCD88
   
pub   rsa4096 2017-02-22 SCEA
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           unknown Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 S

利用以下指令设置不变版堆栈

$ sudo add-apt-repository \
   "deb arch=amd64 //download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

装置 Docker Engine-Community

更新 apt 包索引。

$ sudo apt-get update

装置最新版本的 Docker Engine-Community 和 containerd ,或转到下一步装置特定版本:

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

要装置特定版本的 Docker Engine-Community,请在堆栈中列出可用版本,而后挑选一种装置。列出您的堆栈中可用的版本:

$ apt-cache madison docker-ce

  docker-ce | 5:18.09.1~3-0~ubuntu-xenial | http://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 5:18.09.0~3-0~ubuntu-xenial | http://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.1~ce~3-0~ubuntu       | http://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.0~ce~3-0~ubuntu       | http://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  ...

利用第二列中的版本字符串装置特定版本,比方 5:18.09.1~3-0~ubuntu-xenial。

$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

测试 Docker 是不是装置胜利,输出以下指令,打印出以下信息则装置胜利:

$ sudo docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete                                                                                                                                  Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest


Hello from Docker!
This message shows that your installation appears to be working correctly.


To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.


To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash


Share images, automate workflows, and more with a free Docker ID:
 http://hub.docker.com/


For more examples and ideas, visit:
 http://docs.docker.com/get-started/

利用 Shell 剧本停止装置

Docker 在 快乐飞艇是犯法的吗:get.docker.com 快乐飞艇是犯法的吗:test.docker.com 上供给了便利剧本,用于将疾速装置 Docker Engine-Community 的边缘版本和测试版本。剧本的源代码在 docker-install 堆栈中。 不倡议在出产情况中利用这些剧本,在利用它们之前,您应当领会潜伏的危险:

  • 剧本须要运转 root 或具备 sudo 特权。是以,在运转剧本之前,应细心查抄和考核剧本。

  • 这些剧本测验考试检测 Linux 刊行版和版本,并为您设置装备摆设软件包办理体系。另外,剧本不许可您自界说任何装置参数。从 Docker 的角度或您本身构造的原则和规范的角度来看,这能够致使不撑持的设置装备摆设。

  • 这些剧本将装置软件包办理器的一切依靠项和倡议,而无需停止确认。这能够会装置大批软件包,详细取决于主机的以后设置装备摆设。

  • 该剧本未供给用于指定要装置哪一个版本的 Docker 的选项,而是装置了在 edge 通道中宣布的最新版本。

  • 若是已利用其余机制将 Docker 装置在主机上,请不要利用便利剧本。

本示例利用 快乐飞艇是犯法的吗:get.docker.com 上的剧本在 Linux 上装置最新版本的Docker Engine-Community。要装置最新的测试版本,请改用 test.docker.com。鄙人面的每一个号令,代替每次呈现 get 用 test。

$ curl -fsSL //get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

若是要利用 Docker 作为非 root 用户,则招考虑利用近似以下体例将用户增加到 docker 组:

$ sudo usermod -aG docker your-user