在oraclelinux上安装Docker

Oracle Linux

Docker支持在Oracle Linux 6和7。把Docker安装在Oracle Linux你不需要Oracle Linux支持订阅。

Prerequisites

由于当前Docker限制,Docker只能运行在x86_64架构上。Docker需要在Oracle Linux上使用Unbreakable Enterprise Kernel Release 4 (4.1.12)或更高版本。这个内核支持在Oracle Linux 6 和 7的Docker btrfs存储引擎。

Install

注意: 下面的程序的安装二进制包由Docker构建。Oracle Linux 支持不包括这些二进制包。要确保Oracle Linux 支持,请按照 Oracle Linux documentation提供的安装指南。
为Oracle Linux 6 和 7的安装指南可以在Chapter 2 of the Docker User’s Guide查看。

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

  2. 确保你现在的yum软件包是最新的。

    $ sudo yum update
  3. 添加yum源。

    为版本6:

    $ sudo tee /etc/yum.repos.d/docker.repo <<-EOF
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/oraclelinux/6
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF

    为版本7:

    $ cat >/etc/yum.repos.d/docker.repo <<-EOF
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/oraclelinux/7
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF
  4. 安装Docker安装包。

    $ sudo yum install docker-engine
  5. 开启Docker守护进程。

    在Oracle Linux 6:

    $ sudo service docker start

    在Oracle Linux 7:

    $ sudo systemctl start docker.service
  6. 在容器中运行一个镜像来验证 docker 是否安装正确。

    $ sudo docker run hello-world

Optional configurations

这部分包含可选的程序使你的Oracle Linux能够更好地和Docker一起工作。

Create a Docker group

docker 守护进程绑定在一个Unix socket 来代替TCP端口。 默认情况下 Unix socket 属于 root 用户和其它具有 sudo 权限的用户。因此,docker 守护进程总是使用root 用户运行。

为避免每次使用 docker 命令都要添加sudo,创建一个叫做 docker 的Unix 用户组并使用它。当docker 守护进程启动,docker 用户组会分配Unix socket的读写权限。

警告: docker 用户组等同于 root 用户; 更多关于他和系统安装之间的冲突,查看Docker Daemon Attack Surface

创建 docker 用户组和添加用户:

  1. 使用具有 sudo 权限的用户登录系统。

  2. 创建 docker 用户组。

    $ sudo groupadd docker
  3. 添加你的用户到 docker 用户组。

    $ sudo usermod -aG docker $USER
  4. 重新登录用户。

    确保你的用户拥有正确的权限。

  5. 使用没有 sudo 的命令运行 docker 来验证你的工作。

    $ docker run hello-world

    如果失败会出现以下类似信息:

    Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?

    检查 DOCKER_HOST 环境变量是否设置。如果设置了,重新设置它。

Configure Docker to start on boot

你可以配置Docker守护进程在开机时自启动。

在Oracle Linux 6:

$ sudo chkconfig docker on

在Oracle Linux 7:

$ sudo systemctl enable docker.service

如果你想添加HTTP代理,设置另一个存放Docker运行时文件目录或者磁盘,或者其他个性化设置,阅读我们Systemd文章customize your Systemd Docker daemon options

Use the btrfs storage engine

Docker支持在Oracle Linux 6 和 7上使用btrfs存储引擎。在开启btrfs支持之前,确保/var/lib/docker存储在一个btrfs-based文件系统上。查阅Chapter 5 关于 Oracle Linux Administrator’s Solution Guide 获取更多如何创建和挂载btrfs文件系统的细节。

在Oracle Linux上开启btrfs 支持:

  1. 确保 /var/lib/docker 在一个btrfs文件系统上。

  2. 编辑 /etc/sysconfig/docker 和为字段OTHER_ARGS 添加值-s btrfs

  3. 重新启动Docker守护进程:

Uninstallation

卸载Docker 安装包:

$ sudo yum -y remove docker-engine

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

$ rm -rf /var/lib/docker

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

Known issues

Docker unmounts btrfs filesystem on shutdown

如果你在btrfs存储系统上运行Docker引擎并停止Docker服务,他将在关闭过程中卸载btrfs系统。你在每次重启Docker服务时需要确保文件系统是否正确挂载。

在Oracle Linux 7,你可以使用systemd.mount 定义和修改Dockersystemd.service依赖于btrfs挂载在系统级。

SElinux support on Oracle Linux 7

在文件/etc/sysconfig/selinux中必须将SElinux设置为Permissive 或者 Disabled 在Oracle Linux 7上使用btrfs存储。

Further issues?

如果你拥有Oracle Linux基本和高级支持订阅,你可以在 My Oracle Support报告任何关于安装Docker的工单。

如果你没有Oracle Linux支持订阅,你可以使用Oracle Linux Forum 社区支持。