docker升级及 ce, cs 和 ee版本的区别

2019-04-16  本文已影响0人  riverlcn

起因

今天在 CentOS 7 上编译 docker 镜像,Dockerfile 里面有这样两行

FROM postgres:10.7 AS cube-builder
...

FROM postgres:10.7
COPY --from=cube-builder /usr/lib/postgresql/10/lib/cube.so /usr/lib/postgresql/10/lib/

使用 docker build 编译时,出现 FROM AS 不正确,COPY unknown flag --from 这样的错误。查了官方的文档,有这两个选项。

Optionally COPY accepts a flag --from=<name|index> that can be used to set the source location to a previous build stage (created with FROM .. AS <name>) that will be used instead of a build context sent by the user.

再查一些资料,发现是 docker 版本过低,没有这个选项。好吧,升级 docker...

CentOS 7 升级 docker

CentOS 7 默认源安装的 docker 版本是 1.13.1, 需要升级版本到 ce 版本

卸载老版本的 docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装 docker ce

官方提供多种方法安装 ce 版本 docker,我们通过 yum 仓库的方式安装 docker ce。(P.S 官方文档写的比较详细,可以点击查看)

  1. 安装依赖的工具包和存储驱动
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 配置 docker ce yum仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装
sudo yum install docker-ce
  1. 启动 docker,并查看安装的版本
sudo systemctl start docker
docker version

输出如下,说明安装成功.

Client:
 Version:           18.09.5
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        e8ff056
 Built:             Thu Apr 11 04:43:34 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.5
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       e8ff056
  Built:            Thu Apr 11 04:13:40 2019
  OS/Arch:          linux/amd64
  Experimental:     false

docker ce, cs, ee 版本区别

StackOverflowDocker CE, Docker EE, Dokcer CS 有一段简单的描述,说明其中的差异,大概意思如下:

这篇一篇文章 ANNOUNCING DOCKER ENTERPRISE EDITIONDocker CEDocker EE 有更详细的介绍。EE 版有更强的功能和更好的支持,CE 版同样也会支持,发布版本周期也更频繁。

ee.png

对于大多数开发者,使用 CE 版本的功能即可满足需求。

上一篇下一篇

猜你喜欢

热点阅读