Docker--安装、配置

2019-06-18  本文已影响0人  凉初透的风

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

image.png image.png

在任何地方开发、部署和运行任何应用

Docker是一款针对程序开发人员和系统管理员来开发、部署、运行应用的一款虚拟化平台。Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的差异。Docker 会尽可能的缩短从代码测试到产品部署的时间。

Docker 组件

为什么选择Docker

快速交付应用程序

Get higher density and run more workloads

Docker的容器本身不需要额外创建虚拟机管理系统,因此你可以启动多套Docker容器,这样就可以充分发挥主机服务器的物理资源,也可以降低因为采购服务器licenses而带来的额外成本。

快速构建 轻松管理

因为Docker上述轻便,快速的特性。可以使您的应用达到快速迭代的目的。每次小的变更,马上就可以看到效果。而不用将若干个小变更积攒到一定程度再变更。每次变更一小部分其实是一种非常安全的方式。

Docker的安装和使用

Docker CE 的安装请参考官方文档:

安装Docker -- Ubantu为例

OS 要求

要安装Docker CE,您需要这些Ubuntu版本之一的64位版本:

Docker CE上支持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 CE在Ubuntu支持overlay2aufsbtrfs存储驱动程序。

注意:在Docker Engine - Enterprise中,btrfs仅在SLES上受支持。有关更多详细信息,请参阅btrfs上的文档 。

对于Linux内核版本4及更高版本的新安装,overlay2 支持并首选aufs。Docker CE overlay2 默认使用存储驱动程序。如果需要使用aufs,则需要手动配置。见aufs

安装 Docker CE

您可以根据需要以不同方式安装Docker CE:

使用存储库安装

在新主机上首次安装Docker CE之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

设置存储库
  1. 更新apt包索引:

    $ sudo apt-get update
    
  2. 安装包以允许apt通过HTTPS使用存储库:

    $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    
  3. 添加Docker的官方GPG密钥:

    $ curl -fsSL https://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]
    
  4. 使用以下命令设置稳定存储库。要添加 夜间测试存储库,请在下面的命令中的单词后添加单词nightlytest(或两者)stable了解夜间测试频道

    注意:下面的lsb_release -cs子命令返回Ubuntu发行版的名称,例如xenial。有时,在像Linux Mint这样的发行版中,您可能需要更改$(lsb_release -cs) 为父Ubuntu发行版。例如,如果您正在使用 Linux Mint Tessa,则可以使用bionic。Docker不对未经测试和不受支持的Ubuntu发行版提供任何保证。

x86_64 / amd64 对应的是:

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

安装DOCKER CE

  1. 更新apt包索引。

    $ sudo apt-get update
    
  2. 安装最新版本的Docker CE和containerd,或者转到下一步安装特定版本:

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

    有多个Docker存储库?

    如果您启用了多个Docker存储库,则在未指定apt-get installapt-get update命令中的版本的情况下安装或更新始终会安装尽可能高的版本,这可能不适合您的稳定性需求。

  3. 要安装特定版本的Docker CE,请在repo中列出可用版本,然后选择并安装:

    一个。列出您的仓库中可用的版本:

    $ apt-cache madison docker-ce
    
      docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.0~ce~3-0~ubuntu       | https://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
    
  4. 通过运行hello-world 映像验证是否正确安装了Docker CE 。

    $ sudo docker run hello-world
    

    此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性消息并退出。

Docker CE已安装并正在运行。该docker组已创建,但未向其添加任何用户。您需要使用它sudo来运行Docker命令。继续Linux postinstall以允许非特权用户运行Docker命令和其他可选配置步骤。

添加daemon.json文件

运行 sudo docker run hello-world,没有返回结果,如下:

image.png

docker在本地没有找到hello-world镜像,也没有从docker仓库中拉取镜像,出项这个问题的原因:是应为docker服务器再国外,我们在国内无法正常拉取镜像,所以就需要我们为docker设置国内阿里云的镜像加速器;
需要修改配置文件 /etc/docker/daemon.json 如下:
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}

先创建 daemon.json

image.png

后添加字段


image.png

重启docker systemctl restart docker
查看docker 状态 systemctl restart docker

image.png

运行 sudo docker run hello-world,结果如下:

image.png

升级DOCKER CE

要升级Docker CE,请先运行sudo apt-get update,然后按照 安装说明选择要安装的新版本。

从包安装

如果您无法使用Docker的存储库来安装Docker CE,则可以下载.deb适用于您的发行版的 文件并手动安装。每次要升级Docker时都需要下载新文件。

  1. https://download.docker.com/linux/ubuntu/dists/选择你的Ubuntu版本,浏览pool/stable/,选择amd64armhfarm64ppc64el,或s390x,并下载.deb文件要安装多克尔CE版本。

Note: To install a nightly package, change the word stable in the URL to nightly. Learn about nightly and testchannels.

  1. 安装Docker CE,将下面的路径更改为您下载Docker软件包的路径。

    $ sudo dpkg -i /path/to/package.deb
    

    Docker守护程序自动启动。

  2. 通过运行hello-world 映像验证是否正确安装了Docker CE 。

    $ sudo docker run hello-world
    

    此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性消息并退出。

Docker CE已安装并正在运行。该docker组已创建,但未向其添加任何用户。您需要使用它sudo来运行Docker命令。继续执行Linux的安装后步骤, 以允许非特权用户运行Docker命令和其他可选配置步骤。

升级DOCKER CE

要升级Docker CE,请下载较新的软件包文件并重复 安装过程,指向新文件。

使用便捷脚本安装

Docker在get.docker.comtest.docker.com上提供了便捷脚本,用于快速,非交互地将Docker CE的边缘和测试版本安装到开发环境中。脚本的源代码位于 docker-install存储库中建议不要在生产环境中使用这些脚本,在使用它们之前,您应该了解潜在的风险:

此示例使用get.docker.com上的脚本在Linux上安装最新版本的Docker CE。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令中,替换每次出现的getwith test

警告

始终检查从Internet下载的脚本,然后在本地运行它们。

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

如果您想将Docker用作非root用户,您现在应该考虑将您的用户添加到“docker”组,例如:

  sudo usermod -aG docker your-user

请记得注销并重新登录才能生效!

警告

将用户添加到“docker”组会授予他们运行容器的能力,这些容器可用于获取Docker主机上的root权限。 有关更多信息,请参阅 Docker守护程序攻击面

已安装Docker CE。它会自动在DEB基于发行版的分发上启动。在RPM基于On的 基础上,您需要使用相应的systemctlservice命令手动启动它 。如消息所示,非root用户默认情况下无法运行Docker命令。

使用便捷脚本后升级DOCKER

如果您使用便捷脚本安装了Docker,则应直接使用软件包管理器升级Docker。重新运行便捷脚本没有任何好处,如果它尝试重新添加已添加到主机的存储库,则可能会导致问题。

卸载Docker CE

  1. 卸载Docker CE软件包:

    $ sudo apt-get purge docker-ce
    
  2. 主机上的图像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:

    $ sudo rm -rf /var/lib/docker
    

您必须手动删除任何已编辑的配置文件。

·

上一篇下一篇

猜你喜欢

热点阅读