在Ubuntu 20.04 | 18.04和CentOS 7上安装Pouch容器引擎

时间:2020-02-23 14:31:44  来源:igfitidea点击:

PouchContainer是阿里巴巴的开源容器技术。就像Docker一样,PouchContainer也利用了图像技术。容器镜像是轻巧的,独立的,可执行的软件软件包,其中包括运行应用程序所需的一切:代码,运行时,系统工具,系统库和设置。

PouchContainer具有以下功能:

PouchContainer包含一个"丰富容器"模式:它具有容器的特性和功能,可以扩展以支持更广泛的要求,例如健康状态监视,线程,堆栈,锁争用,网络消息统计信息和配置信息。

隔离:该技术包含高度的隔离和安全性原则,例如基于管理程序的容器技术,lxcfs,目录磁盘配额,修补的Linux内核等。

在大规模部署中,袋式容器利用Dragonfly(基于P2P的分发系统),极大地提高了容器的分发速度。

PouchContainer与Kubernetes兼容,因此我们可以轻松地从一个Kubernetes运行时迁移到PouchContainer。

与传统的VM技术相比,邮袋容器具有许多优势。包括:

1.资源友好

在PouchContainer上运行的应用程序可以通过分层图像结构来最大程度地减少其存储使用量。与传统VM技术相比,它还允许增量镜像分发,从而节省了带宽消耗。

2.面向应用

PouchContainer提供跨平台和跨OS的应用程序交付。强大的应用程序运行时隔离技术使这成为可能。

如何在Ubuntu上安装PouchContainer:

准备工作:

PouchContainer与LXCFS携手合作进行隔离。 LXCFS是用于实现容器的用户空间文件系统。

为了使PouchContainer在我们的Ubuntu服务器上运行,我们需要预先安装LXCFS:

sudo apt-get install lxcfs

安装允许aptitude通过HTTPS使用存储库的软件包:

sudo apt-get install curl apt-transport-https ca-certificates software-properties-common

下一步是添加PouchContainers官方GPG密钥:

curl -fsSL http://mirrors.aliyun.com/opsx/pouch/linux/debian/theitroad@localhost | sudo apt-key add 

将PouchContainer存储库添加到Ubuntu服务器:

sudo add-apt-repository "deb http://mirrors.aliyun.com/opsx/pouch/linux/debian/pouch stable"

安装最新版本的PouchContainer:

sudo apt-get update
sudo apt-get install pouch
Start and enable PouchContainer
sudo systemctl start pouch
sudo systemctl enable pouch

现在,我们已经在Ubuntu服务器上成功部署了PouchContainer。稍后将在本文中探索一些基本的PouchContainer命令。

如何在CentOS 7上安装PouchContainer

请注意,PouchContainer不能与Docker一起安装在同一实例上。如果我们具有正在运行的Docker服务并希望安装PouchContainer,请在安装PouchContainer之前先卸载Docker。

以下步骤将指导我们如何在运行CentOS 7的实例上安装PouchContainer。

1.安装yum实用程序

sudo yum install -y yum-utils

2.将PouchContainer存储库配置到Centos 7服务器并更新系统:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/opsx/opsx-centos7.repo
sudo yum update

3.安装PouchContainer

sudo yum install pouch

PouchContainer创建一个没有添加用户的分组邮袋。只有root用户具有对任何用户组的独占访问权限。

4.启动PouchContainer

sudo systemctl start pouch
sudo systemctl enable pouch

要与非root用户一起运行pouch命令,我们需要将该用户添加到pouch组中:

将用户添加到组

sudo gpasswd -a $USER pouch

PouchContainer容器引擎用法

PouchContainer具有客户端/服务器的体系结构。在这种情况下,根据上下文发出了两个命令行:

pouchd: a daemon side binary to run as a server;
pouch: a client side binary to run as a client.

在PouchContainer上部署一个简单的Nginx应用程序

如前所述,它与docker镜像兼容。

好下载nginx图像并运行一个nginx容器:

pouch run --name webserver -p 80:80 -d nginx

此命令从docker存储库下载nginx镜像并启动名为webserver的容器。

容器具有映射到服务器端口80的内部端口80。

要验证容器是否正在运行:

pouch ps -a

输出应如下所示:

[theitroad@localhost ~]# pouch ps -a
Name        ID       Status       Created          Image                                          Runtime
webserver   ad50b8   created      13 seconds ago   registry.hub.docker.com/library/nginx:latest   runc

现在可以在主机的端口80上访问Nginx:

要在容器上运行本机命令,请使用pouch exec:

pouch exec -it <container> [command]

# Example
pouch exec -it webserver /bin/bash

PouchContainer基本管理命令

其他PouchContainer基本用法命令包括:

$pouch version
Version:         1.3.0
APIVersion:      1.24
Arch:            amd64
BuildTime:       2019-06-13T11:25:25+00:00
GitCommit:       1.3.0
GoVersion:       go1.10.4
KernelVersion:   3.10.0-1127.el7.x86_64
Os:              linux

1. Pouch pull

用法:pouch pull <image>

[theitroad@localhost ~]# pouch pull ubuntu
registry.hub.docker.com/library/ubuntu:latest:                                    resolved       |++++++++++++++++++++++++++++++++++++++| 
index-sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878bb85f1ebb5f951c896d13e6ba537:    done           |++++++++++++++++++++++++++++++++++++++| 
manifest-sha256:2e70e9c81838224b5311970dbf7ed16802fbfe19e7a70b3cbfa3d7522aa285b4: done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:b6a83d81d1f4f942d37e1f17195d9c519969ed3040fc3e444740b884e44dec33:    done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:d72e567cc804d0b637182ba23f8b9ffe101e753a39bf52cd4db6b89eb089f13b:    done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:0f3630e5ff08d73b6ec0e22736a5c8d2d666e7b568c16f6a4ffadf8c21b9b1ad:    done           |++++++++++++++++++++++++++++++++++++++| 
config-sha256:9140108b62dc87d9b278bb0d4fd6a3e44c2959646eb966b86531306faa81b09b:   done           |++++++++++++++++++++++++++++++++++++++| 
elapsed: 12.3s                                                                    total:  27.2 M (2.2 MiB/s)

2.pouch run

用法:pouch run -it <镜像>

此命令用于从图像创建容器

[theitroad@localhost ~]# pouch run -it  ubuntu
theitroad@localhost:/#

显示列表pf本地存储的pouch run的镜像

pouch images

3.停止pouch容器:

使用语法下面语法停止容器:

pouch stop <container>
# Example
pouch stop webserver

4.删除容器

要删除容器,请使用命令语法:

pouch rm <container>

例如

pouch rm webserver

5.提交pouch

用法:

docker commit <conatainer id> <username/imagename>

此命令在本地系统上创建已编辑容器的新镜像

pouch守护程序配置

使用守护程序配置文件,用户可以将标记设置为:服务器端命令行工具。

使用PouchContainer,用户可以通过两种方式将标志传递给守护程序:使用指定的标志直接运行pouched,例如pouchd -c/var/run/containerd.sock,使用守护程序配置文件。

pouch标志可以在https://github.com/alibaba/pouch/blob/master/docs/commandline/pouchd.md中找到

配置pouch配置文件:

建议用户通过守护程序配置文件设置守护程序标志,配置文件的默认路径为" /etc/pouch/config.json",可以通过" --config-file"的设置值进行更改。

运行时格式

如果用户想将更多的运行时添加到pouch中,请添加以下内容:

{
    "add-runtime": {
        "runc": {
            "path": "/usr/local/bin/runc",
            "runtimeArgs": [
                "--debug"
            ]
        }
    }
}

配置配置文件的步骤安装PouchContainerEdit守护程序配置文件,例如:

{
    "image-proxy": "http://127.0.0.1:65001",
    "debug": false
}

3.开始pouch服务:

systemctl start pouch

如何卸载pouch

在Ubuntu上:

sudo apt-get purge pouch

在CentOS上

sudo yum remove pouch

运行remove命令后,主机上的镜像,容器,卷或者自定义配置文件不会自动删除。要删除所有镜像,容器和卷,请执行以下命令:

sudo rm -rf /var/lib/pouch