CentOS Docker 安装

大数据51

Docker 支持以下的 64 位 CentOS 版本:

  • CentOS 7
  • CentOS 8
  • 更高版本...

使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

手动安装

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

使用以下命令来设置稳定的仓库。

可以选择国内的一些源地址:

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io

如果提示您接受 GPG 密钥,请选是。

有多个 Docker 仓库吗?
如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。

Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

启动 Docker。

$ sudo systemctl start docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

$ sudo docker run hello-world

删除安装包:

yum remove docker-ce

删除镜像、容器、配置文件等内容:

rm -rf /var/lib/docker

Original: https://www.cnblogs.com/cheyunhua/p/16504477.html
Author: 技术颜良
Title: CentOS Docker 安装



相关阅读1

Title: Docker 1.13 管理命令

1.12 CLI 的问题

Docker1.12 命令行接口(CLI)有40多个顶级命令,这些命令存在以下问题:

Docker 1.13 整理后,现在顶级命令有以下这些:

checkpoint  Manage checkpoints
container   Manage containers
image       Manage images
network     Manage networks
node        Manage Swarm nodes
plugin      Manage plugins
secret      Manage Docker secrets
service     Manage services
stack       Manage Docker stacks
swarm       Manage Swarm
system      Manage Docker
volume      Manage volumes

在1.13 中,列出所有 images 使用 docker image ls 取代之前的 docker images,类似的,docker container ls 列出所有的container (之前为docker ps),这样保持了不同类命令的一致性,新手更容易学习;

所有管理命令都有一些共同的子命令:
SUB-COMMAND PURPOSE
ls: List (image, container, volume, secret, etc)
rm: Remove
inspect: Inspect

默认所有的顶级命令都会显示,但是如果你设置DOCKER_HIDE_LEGACY_COMMANDS 为true后就只会显示管理类命令。

DOCKER_HIDE_LEGACY_COMMANDS=true docker --help

1.13 之前的命令语法都依然可以使用,但建议都迁移到新的命令上来。

比如,启动一个容器的语法:

docker container run -d -p 8091-8094:8091-8094 -p 11210:11210 arungupta/couchbase

原有命令和新管理命令之间的映射

1.12 1.13 PURPOSE

登录到一个运行的容器中

从 Dockerfile 构建镜像

根据 container's 变更创建镜像

在容器和本地文件系统之间复制文件/文件夹

创建一个新的容器

查看容器的变更详情

获取服务端的实时事件

在一个运行的容器中运行命令

将容器的文件系统导出

查看镜像历史

列出所有镜像

从本地文件系统导入镜像

显示系统信息

查看容器详情

强杀运行中的容器

从备份中加载镜像

登录到 Docker registry.

退出 Docker registry.

查看容器日志

管理容器网络

管理docker Swarm 节点

暂时容器内进程

列出容器的所有的端口映射

列出所有容器

从 仓库中拉取镜像

推送镜像到仓库

重命名容器

重启容器

删除容器

删除镜像

在容器中运行命令

将镜像保存为tar 备份文件

在仓库中搜素镜像

管理 Docker 服务

启动容器

实时查看容器统计信息

停止容器

管理 Docker Swarm

给镜像打标签

查看容器的运行进程

恢复暂停的进程

更新容器配置

查看 Docker 版本信息

管理 Docker 卷

阻塞等待容器停止,然后打印退出码

Original: https://www.cnblogs.com/me115/p/6366391.html
Author: 大CC
Title: Docker 1.13 管理命令

相关阅读2

Title: 3分钟快速了解猪齿鱼权限

CentOS Docker 安装

猪齿鱼 Choerodon 数智化开发管理平台 ,提供协作、测试、DevOps及容器等工具,帮助企业拉通软件开发和项目管理的需求、设计、开发、部署、测试和运营全流程,全面满足企业研发管理与工程效率需求,一站式提高管理效率和软件研发质量,助力团队效能更快更强更稳定,助推企业数智化转型升级。

本文将介绍猪齿鱼的权限体系,帮助猪齿鱼用户从自身需求出发,进行更细粒度的权限控制。本文也将对猪齿鱼中所应用的 RBAC 权限模型和 HZERO(汉得企业级 PaaS 平台)的角色权限体系进行简要介绍。

  • *RBAC权限模型

猪齿鱼 Choerodon 权限体系基于RBAC权限模型而建立。以下先简要介绍下RBAC模型。

RBAC是Role Based Access Control的英文缩写,意思是基于角色的访问控制。RBAC认为权限的过程可以抽象概括为:判断"Who是否可以对What进行How的访问操作"这个逻辑表达式的值是否为True的求解过程。即,将权限问题转换为Who、What、How的问题,Who、What、How构成了访问权限三元组。其中Who是权限的拥有者或主体(User、Role),What是资源或对象(Resource、Class),How指具体操作(View, Edit)。

RBAC权限模型如下:

CentOS Docker 安装

相对于直接将权限授予用户个人来说,RBAC权限模型增加了角色,授权会更加的灵活方便。角色可以理解为一定数量的权限集合,权限的载体。

RBAC主要包含四个子模型:RBAC0、RBAC1、RBAC2和RBAC3,整体又叫做RBAC96模型族。

CentOS Docker 安装

RBAC0:RBAC0是权限管理的核心部分,其他的版本都是建立在RBAC0的基础上。简单来说,RBAC0就是一个用户拥有若干角色,每一个角色拥有若干权限。这样就构造成"用户-角色-权限"的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般都是多对多的关系。并且将关系作为一个单独的概念来使用,这样可以在关系概念中加入一些其他的属性。

RBAC1:RBAC1建立在RBAC0的基础上,引入了角色继承的概念。有了继承。角色就有了上下级或者等级关系,每个等级权限不同,从而实现更细颗粒度的权限管理,比如:一个部门有正副经理,副经理的权限只有正经理的部分权限,这时候就可以采用RBAC1权限模型。

RBAC2:RBAC2在RBAC0模型的基础之上,增加了角色约束,主要约束哪些操作是可进行的,哪些是不可进行。

RBAC3:RBAC3是RBAC1和RBAC2的合集,所以RBAC3既有角色分层,也包括可以增加各种限制。

  • *HZERO角色

猪齿鱼使用汉得企业级PaaS平台HZERO作为微服务开发框架,猪齿鱼的角色权限控制也使用了HZERO的角色权限体系。

HZERO是一个企业级 PaaS平台,结合汉得多年的项目实施经验,抽象、封装了大量的应用标准服务及功能,以帮助企业产品研发、项目实施更加高效便捷,避免大量产品和项目重复造轮子带来的成本浪费。

在HZERO角色体系中,所有角色都是属于平台(超级)管理员或租户(超级)管理员的子孙角色。平台管理员拥有所有平台级权限,创建平台级权限集时,所有平台级权限会被自动分配到平台管理员上;租户管理员拥有所有租户级权限,创建租户级权限集时,所有租户级权限会被自动分配到租户管理员上。所以,创建权限集后,只能由对应层级的超级管理员往下分配权限。

HZERO角色体系分创建体系和继承体系,创建体系表现在父、子角色关系上,继承体系表现在继承角色关系上。两种体系的区别是:在分配权限时,例如,在给租户模板角色分配权限后,所有继承自该租户模板角色的角色将自动拥有该租户模板角色被分配的权限,用户可以一键往下分配继承自该租户角色模板的角色权限;创建体系则不能一键往下分配子角色的权限。在回收权限时,会回收整个创建体系、继承体系的权限。

具体使用详情可参考HZERO角色管理文档。

  • *猪齿鱼预定义角色

猪齿鱼预定义角色是猪齿鱼权限的基础,由平台默认创建,包括以下四个角色:

  • 组织管理员角色模板:组织层所有权限
  • 组织成员角色模板:组织层部分操作权限
  • 项目所有者角色模板:项目层所有权限
  • 项目成员角色模板:项目层部分操作权限

创建组织时,会基于这四个模板创建对应组织的相关角色,即所有组织的四个预定义角色,都继承自这四个角色模板;通过HZERO的继承体系,可以一键往下分配权限或者回收权限。

CentOS Docker 安装

  • *角色标签

猪齿鱼通过角色标签区分是组织层角色还是项目层角色、区分对应用服务的Gitlab权限,以此实现业务权限的灵活管理与有效隔离。

使用平台管理员角色,进入平台管理-》HZERO菜单-》角色管理菜单,进入HZERO标签管理界面。选择角色标签,可以查看猪齿鱼的所有角色标签及其含义。

CentOS Docker 安装

该页面可编辑的只有TENANT_ROLE、PROJECT_ROLE、GITLAB_OWNER、等四个标签。

首先介绍进行层级区分的两个标签:

  • TENANT_ROLE:用于标识猪齿鱼租户层角色,该标签有两个含义,一是用于区分HZERO的角色与猪齿鱼的角色,二是用于区分猪齿鱼的组织层角色和项目层角色。
  • PROJECT_ROLE:用于标识猪齿鱼的项目层角色,含义同TENANT_ROLE。

值得注意的是,只有拥有以上两个中任意一个标签的角色,才能在管理中心-》角色管理进行查看和编辑。

另外,还有控制GitLab权限的两个标签:

  • GITLAB_OWNER:当为用户分配拥有该角色标签的角色时,会自动为该用户分配项目下所有应用服务在GitLab的Owner权限。
  • GITLAB_DEVELOPER:同GITLAB_OWNER,会自动为该用户分配项目下所有应用服务在GitLab的Developer权限。

以上两个标签的设置主要是为了解决用户拥有项目下的菜单权限,但是,在实际操作过程中,却没有GitLab权限而操作失败这一问题;但是因为这两个标签是给项目下所有应用服务分配权限,所以需谨慎使用,该标签需要配合PROJECT_ROLE标签使用。

附:猪齿鱼GitLab权限说明

  • 猪齿鱼的组织所有者、项目所有者角色,默认拥有gitlab_owner角色标签,拥有项目下所有应用服务在GitLab的Owner权限;
  • 对于项目成员默认没有Gitlab任何权限,可根据需要在代码管理界面,给用户分配具体的权限,包括Guest、Repoter等角色;
  • 对于自定义角色,可根据需求选择GITLAB_OWNER或者GITLAB_DEVELOPER角色标签。

  • *自定义角色

了解了角色标签的含义,我们可以开始创建自定义角色。您可以在组织层或平台层找到自定义角色的入口:组织层-》管理中心-》角色管理;平台层-》角色管理。

组织层角色管理

可以创建、编辑该组织下的所有自定义角色,创建项目层角色时,必须要选择GitLab角色标签,以避免拥有菜单权限,但是没有GitLab权限,从而导致操作失败的情况;在该界面创建的角色,会根据角色层级的不同,自动分配TENANT_ROLE或PROJECT_ROLE角色标签,且父级角色都是该组织的组织管理员。

具体使用详情可参考猪齿鱼角色管理帮助手册

平台层角色管理

除了创建和编辑角色外,还可以复制和继承角色,以快速创建自定义角色。比如:您想要创建某个组织层角色(该角色需要拥有组织管理员除了创建项目的操作外的所有权限)时,您可选择组织管理员角色,点击"复制",角色标签选择TENANT_ROLE,然后再去掉创建项目权限集即可。

具体使用详情可参考HZERO角色管理文档

综上,猪齿鱼的权限体系相对完善,猪齿鱼用户不仅可以一键分配或回收角色权限,方便快捷地进行权限管理;也可创建自定义角色,进行更细粒度的权限控制,满足自身的定制化需求。

参考文档

CentOS Docker 安装

CentOS Docker 安装

上海甄知科技有限公司(简称甄知科技)是一家服务管理数字化领先企业,由业界知名的企业数字化综合服务商--上海汉得信息技术股份有限公司(股票代码:300170)孵化而成,承袭汉得信息20年的企业信息化服务经验和对企业数智化建设的深入理解,以产品燕千云、猪齿鱼,为用户提供智能化IT运维、人性化员工服务、全方位客户成功、可视化软件研发的SaaS管理平台+PaaS定制能力,强势助力各行业企业数智化转型升级。

甄知科技陪伴众多优秀企业共同成长

Original: https://www.cnblogs.com/choerodon/p/16145154.html
Author: 猪齿鱼开发管理平台
Title: 3分钟快速了解猪齿鱼权限

相关阅读3

Title: 如何用Dockerfile构建镜像

Dockerfile构建镜像是以基础镜像为基础的,Dockerfile是一个文本文件,内容是用户编写的一些docker指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

Dockerfile的基本指令有十三个,分别是:FROM、MAINTAINER、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD

类型命令 基础镜像信息 FROM 维护者信息 MAINTAINER 镜像操作指令 RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等 容器启动时执行指令 CMD、ENTRYPOINT

  • *1.1、FROM :指定基础镜像

所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个nginx镜像的容器,再进行修改一样,基础镜像是必须指定的。而FROM就是指定基础镜 像,因此一个Dockerfile中FROM是必备的指令,并且必须是第一条指令。
如:指定ubuntu的14版本作为基础镜像

  • *1 .2、 RUN:执行命令

RUN指令在新镜像内部执行的命令,如:执行某些动作、安装系统软件、配置系统信息之类,

格式如下两种:

1)shell格式:RUN< command > ,就像直接在命令行中输入的命令一样。

如在nginx里的默认主页中写"hello":

2)exec格式:RUN ["可执行文件", "参数1", "参数2"]

如在新镜像中用yum方式安装nginx:

注:多行命令不要写多个RUN,原因是Dockerfile中每一个指令都会建立一层.多少个RUN就构建了多少层镜像,会造成镜像的臃肿、多层,不仅仅增加了构件部署的时间,还容易出错,RUN书写时的换行符是\
  • *1.3、COPY:复制文件

COPY命令用于将宿主机器上的的文件复制到镜像内,如果目的位置不存在,Docker会自动创建。但宿主机器用要复制的目录必须是和Dockerfile文件统计目录下。

格式:

如把宿主机中的package.json文件复制到容器中/usr/src/app/目录下:

  • *1.4、CMD:容器启动命令

CMD命令用于容器启动时需要执行的命令,CMD在Dockerfile中只能出现一次,如果出现多个,那么只有最后一个会有效。
其作用是在启动容器的时候提供一个默认的命令项。如果用户执行docker run的时候提供了命令项,就会覆盖掉这个命令,没提供就会使用构建时的命令。

格式:

如容器启动时进入bash:

也可以用exec写法:

  • *1.5 MAINTAINER:指定作者

用来指定dockerfile的作者名称和邮箱,主要作用是为了标识软件的所有者是谁。
语法:

  • *1.6、EXPOSE:暴露端口

EXPOSE命名适用于设置容器对外映射的容器端口号,如tomcat容器内使用的端口8081,则用EXPOSE命令可以告诉外界该容器的8081端口对外,在构建镜像时
用docker run -p可以设置暴露的端口对宿主机器端口的映射。

语法:

EXPOSE 8081 其实等价于 docker run -p 8081 当需要把8081端口映射到宿主机中的某个端口(如8888)以便外界访问时,则可以用docker run -p 8888:8081

  • *1.7、WORKDIR:配置工作目录

WORKDIR命令是为RUN、CMD、ENTRYPOINT指令配置工作目录。其效果类似于Linux命名中的cd命令,用于目录的切换,但是和cd不一样的是:如果切换到的目录不存在,WORKDIR会为此创建目录。

语法:

如需要在nginx目录下创建一个hello.txt的文件:

  • *1.8、ENTRYPOINT:容器启动执行命名

ENTRYPOINT的作用和用法和CMD一模一样,但是ENTRYPOINT有和CMD有2处不一样:

  • *1.9、VOLUME

VOLUME用来创建一个可以从本地主机或其他容器挂载的挂载点。例如我们知道tomcat的webapps目录是放web应用程序代码的地方,此时我们要把webapps目录挂载为匿名卷,这样任何写入webapps中的心都不会被记录到容器的存储层,让容器存储层无状态化。

格式:

如创建tomcat的webapps目录的一个挂载点

这样,在运行容器时,也可以用过docker run -v来把匿名挂载点挂载都宿主机器上的某个目录,如

  • *1.10、 USER

USER命令用于指定当前望下执行的用户,需要注意的是这个用户必须是已经存在,否则无法指定。它的用法和WORKDIR有点像,切换用户。

格式:

  • *1.11、ADD

  • 作用和使用方法和COPY一模一样,在此不重复讲述。

  • *.12、ONBUILD

ONBUILD用于配置当前所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。
意思就是:这个镜像创建后,如果其它镜像以这个镜像为基础,会先执行这个镜像的ONBUILD命令
格式:

  • *1.13、ENV:设置环境变量

ENV命名用于设置容器的环境变量,这些变量以"key=value"的形式存在,在容器内被脚本或者程序调用,容器运行的时候这个变量也会保留。

格式:

  • 1) 设置一个: ENV
  • 2) 设置多个:ENV

如设置一个环境变量JAVA_HOME,接下来的命名就可以使用这个变量:

在使用ENV设置环境变量时,有几点需要注意:

  • 1)具有传递性,也就是当前镜像被用作其它镜像的基础镜像时,新镜像会拥有当前这个基础镜像所有的环境变量
  • 2)ENV定义的环境变量,可以在dockerfile被后面的所有指令(CMD除外)中使用,但不能被docker run 的命令参数引用

3)除了ENV之外,docker run -e 也可以设置环境变量传入容器内。

这样我们进入容器内部用ENV可以看到tomcat_home_name这个环境变量。

  • *2 Dockerfile的编写

我们先看一个例子

&#x4E0A;&#x9762;&#x7684;&#x6CE8;&#x91CA;&#x5DF2;&#x7ECF;&#x8BB2;&#x7684;&#x975E;&#x5E38;&#x6E05;&#x695A;&#xFF0C;&#x5176;&#x5B9E;&#x4E0D;&#x96BE;&#x53D1;&#x73B0;&#xFF0C;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x5C31;&#x662F;&#x7C7B;&#x4F3C;&#x4E8E;&#x5728;centos&#x7CFB;&#x7EDF;&#x4E0A;&#x5B89;&#x88C5;&#x4E00;&#x4E2A;nginx&#x7684;&#x7684;&#x4E00;&#x4E2A;&#x8FC7;&#x7A0B;&#xFF0C;&#x56E0;&#x6B64;&#x7F16;&#x5199;Dockerfile&#x6784;&#x5EFA;&#x955C;&#x50CF;&#x5C31;&#x548C;&#x5728;Linux&#x4E0A;&#x5B89;&#x88C5;&#x8F6F;&#x4EF6;&#x7684;&#x6D41;&#x7A0B;&#x51E0;&#x4E4E;&#x662F;&#x4E00;&#x6A21;&#x4E00;&#x6837;&#x7684;&#x3002;&#x6240;&#x4EE5;&#x6211;&#x4EEC;&#x5728;&#x7F16;&#x5199;Dockerfile&#x6765;&#x6784;&#x5EFA;&#x955C;&#x50CF;&#x65F6;&#xFF0C;&#x53EF;&#x4EE5;&#x5148;&#x601D;&#x8003;&#x5728;Linux&#x4E0A;&#x5B89;&#x88C5;&#x8BE5;&#x8F6F;&#x4EF6;&#x7684;&#x6D41;&#x7A0B;&#xFF0C;&#x518D;&#x7528;Dockerfile&#x63D0;&#x4F9B;&#x7684;&#x6307;&#x4EE4;&#x8F6C;&#x5316;&#x5230;Dockerfile&#x4E2D;&#x5373;&#x53EF;&#x3002;<br>
  • *3.用Dockerfile构建镜像

用Dockerfile的核心在于编写Dockerfile,但是编写完之后我们需要知道怎么使用Dockerfile来构建镜像,下面以构建nginx镜像为例来简要说明构建流程

  • 3.1 上传安装包

首先我们需要把要构建的软件安装包上传到服务器中,我们可以在服务器目录上创建一个专门的文件夹,如:/var/nginx_build,然后把从nginx官网下载的nginx-1.15.8.tar.gz安装包上传到这个目录里。

  • 3.2 编写Dockerfile

如何编写nginx的Dockerfile上面已经详细介绍,现在我们只需把编写好的Dockerfile上传到/var/nginx_build目录下,当然你也可以在服务器上直接编写Dockerfile,但是要记得一定保证Dockerfile文件和安装包在一个目录下。

  • 3.3 运行构建命令构建

docker build 命令用于使用 Dockerfile 创建镜像。
格式:

OPTIONS有很多指令,下面列举几个常用的:

  • --build-arg=[] :设置镜像创建时的变量;
  • -f :指定要使用的Dockerfile路径;
  • --force-rm :设置镜像过程中删除中间容器;
  • --rm :设置镜像成功后删除中间容器;
  • --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;

因此我们构建nginx可以用以下命令:

当Dockerfile和当前执行命令的目录不在同一个时,我们也可以指定Dockerfile,如

执行命名之后,会看到控制台逐层输出构建内容,直到输出两个Successfully即为构建成功。

转自:https://www.cnblogs.com/momoyan/p/12437312.html

Original: https://www.cnblogs.com/panchanggui/p/15218430.html
Author: panchanggui
Title: 如何用Dockerfile构建镜像