在Debian上安装Docker

Debian

Docker支持以下的Debian版本:

注意: 如果你之前使用APT安装过Docker,确保你的APT源更新为最新的APT仓库。

Prerequisites

Docker需要任一的64位Debian版本。另外,你的内核版本必须至少是3.10。3.10或更新的版本也是可接受的。

3.10以前的内核缺少Docker容器运行的一些功能。这些老的版本已知有很多致使数据丢失的bug,并且在一定的条件下频繁的崩溃。

要检查你的内核版本,打开终端使用 uname -r 命令打印你的内核版本:

$ uname -r
3.11.0-15-generic

另外,对于Debian Wheezy的用户,backports 必须可用。 在Wheezy中启用backports:

  1. 使用具有 sudoroot 权限的用户登陆你的系统。

  2. 打开 /etc/apt/sources.list.d/backports.list 文件。

    如果没有,创建一个。

  3. 移除所有已存在的内容。

  4. 为backports添加一些内容在Debian Wheezy.

    内容示例:

    deb http://http.debian.net/debian wheezy-backports main
  5. 更新包信息。

    $ apt-get update

Update your apt repository

Docker的 APT 仓库包含Docker 1.7.1 和更高版本。设置 APT 使用最新的仓库:

  1. 如果你没有这么做,使用具有sudoroot 权限的用户登录你的系统。

  2. 打开一个终端窗口。

  3. 清楚所有老的仓库。

    $ apt-get purge "lxc-docker*"
    $ apt-get purge "docker.io*"
  4. 更新包信息,确保APT工作在https方法,已经安装并且CA 证书。

    $ apt-get update
    $ apt-get install apt-transport-https ca-certificates
  5. 添加新的 GPG 密钥。

    $ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  6. 打开文件/etc/apt/sources.list.d/docker.list

    如果文件不存在,创建一个。

  7. 移除所有已存在的内容。

  8. 为你的Debian系统添加一些内容。

    可能的内容如下:

    • On Debian Wheezy

      deb https://apt.dockerproject.org/repo debian-wheezy main
    • On Debian Jessie

      deb https://apt.dockerproject.org/repo debian-jessie main
    • On Debian Stretch/Sid

      deb https://apt.dockerproject.org/repo debian-stretch main

      注意: Docker 并没有提供安装包给所有的架构。 你可以每天在https://master.dockerproject.org查看最新的二进制包。 在多架构系统上安装Docker,,需要添加 [arch=...]节点。 点击 Debian Multiarch wiki 获取更多细节。

  9. 保存并关闭文件。

  10. 更新 APT 包索引。

    $ apt-get update
  11. 验证 APT 是否从正确的仓库拉取。

    $ apt-cache policy docker-engine

    从现在开始当你运行apt-get upgradeAPT从新的仓库拉取。

Install Docker

安装Docker之前,确保你已经正确设置你的APT仓库。

  1. 更新 APT 包索引。

    $ sudo apt-get update
  2. 安装Docker。

    $ sudo apt-get install docker-engine
  3. 开启 docker 守护进程。

    $ sudo service docker start
  4. 验证 docker 是否正确安装。

    $ sudo docker run hello-world

    这条命令下载一个测试镜像并且在一个容器中运行它。当这个容器运行时, 他会打印一些信息然后退出。

Giving non-root access

docker 守护进程绑定在一个Unix socket 来代替TCP端口。 默认情况下 Unix socket 属于 root 用户。因此,docker 守护进程总是使用root 用户运行。因此你可以通过sudo访问它。

如果你(或者你的Docker安装者)创建一个叫做docker的用户组并添加了一些用户到这个用户组,然后docker 用户组会分配Unix socket的读写权限当守护进程运行的时候。docker 守护进程必须总是以root用户运行,但是如果你通过docker用户组的用户运行一个docker客户端时你不需要再所有的客户端命令前加sudo。从Docker0.9.0开始你可以使用 -G 标志去指代一个替换组。

警告: docker 组 (或通过 -G 指定的组) 等同于 root; 详情查阅 Docker Daemon Attack Surface

Example:

# Add the docker group if it doesn't already exist.
$ sudo groupadd docker

# Add the connected user "${USER}" to the docker group.
# Change the user name to match your preferred user.
# You may have to logout and log back in again for
# this to take effect.
$ sudo gpasswd -a ${USER} docker

# Restart the Docker daemon.
$ sudo service docker restart

Upgrade Docker

使用 apt-get安装最新版Docker:

$ apt-get upgrade docker-engine

Uninstall

卸载Docker安装包:

$ sudo apt-get purge docker-engine

卸载不再需要的Docker安装包和依赖:

$ sudo apt-get autoremove --purge docker-engine

上述命令不会删除主机上的镜像,容器,卷或用户创建的配置文件。 如果要删除所有镜像,容器和卷,请运行以下命令:

$ rm -rf /var/lib/docker

你必需手动的删除用户配置文件。

What next?

继续 User Guide.