Docker 应用系列
securitit
由上至下深入
展开
-
Dockerfile Registry WebUI 之 docker-registry-web 高级应用
私有仓库应用时,为了保证安全,可能会进行一些安装保障,docker-registry-web允许开启鉴权认证,需要PEM格式的RSA私钥和证书。 服务器信息服务器IP服务器功能描述192.168.20.50用于基于docker-registry-web镜像的容器192.168.20.53用于基于Docker Registry镜像的容器 基于认证配置 1) 使用OpenSSL创建证书文件。 操作服务器: 192.168.20.53。 ① 确认Ope原创 2020-11-17 14:31:26 · 1020 阅读 · 0 评论 -
Dockerfile Registry WebUI 之 docker-registry-web 基础应用
Docker Registry V2的Web UI,用于鉴权服务和事件记录。 docker-registry-web 功能 · 可浏览Docker Registry V2中存储的库、标记和镜像。 · 具有role-based权限模型,基于令牌的身份验证。 · Docker Registry通知记录和审核。 docker-registry-web 连接基于 HTTP 的 Docker Registry · 不要使用registry作为容器名称,它会破坏环境变量REGISTRY_NA原创 2020-11-14 11:40:16 · 4188 阅读 · 1 评论 -
Dockerfile Registry WebUI 之 docker-registry-frontend 高级应用
本文接《Dockerfile Registry WebUI 之 docker-registry-frontend 基础应用》,继续讲解docker-registry-frontend应用。 连接基于HTTPS的Docker Registry 某些场景,需要Docker Registry基于HTTPS开放服务,本文使用已有的仓库https://192.168.20.53:5000。详细可参考《Dockerfile Registry 配置HTTPS服务》。 此时,docker-registry原创 2020-11-13 11:47:29 · 1478 阅读 · 0 评论 -
Dockerfile Registry WebUI 之 docker-registry-frontend 基础应用
简介 docker-registry-frontend是一个基于浏览器的解决方案,用于浏览和修改私有仓库信息。 docker-registry-frontend已于四五年前停止更新,但其功能仍能满足一般应用。 docker-registry-frontend的最新版本仅支持Docker Registry V2版本。 搭建应用,只需从Docker Hub拉取konradkleine/docker-registry-frontend:v2镜像即可。 Github源码地址:https://原创 2020-11-13 10:55:37 · 1126 阅读 · 0 评论 -
Dockerfile Registry 配置HTTPS服务
某些场景下,为了保证私有仓库的安全,可能会期望将Docker Registry基于HTTPS协议开放。 1) 通过docker search搜索registry镜像。docker search registry 2) 拉取registry最新镜像。docker pull registry 3) 查看镜像信息。docker images 4) 使用OpenSSL创建证书文件。 ① 确认OpenSSL是否已安装。openssl version ② 若为安装,原创 2020-11-13 10:01:05 · 2379 阅读 · 0 评论 -
Docker Compose 简介与安装全述
Docker Compose 简介 Compose是Docker官方的开源项目(源码地址:https://github.com/docker/compose),其前身是开源项目Fig,用于定义和运行多容器Docker应用程序的工具,Compose负责实现对Docker容器集群的快速编排。 实际应用中,即使单点服务,也会包含应用服务器、数据库服务器、负载服务器等基本服务,使用dockerfile对这些服务器进行处理,会十分繁琐,而且随着应用的横向扩展或者微服务化,这项工作会变得十分困难。Compo原创 2020-11-11 21:25:54 · 234 阅读 · 0 评论 -
Dockerfile Registry私服搭建及镜像上传
仓库是集中存放镜像的地方,如果接触过Maven,可能更容易理解。 Docker官方公共仓库地址:https://hub.docker.com/。 实际应用中,为了更好的管理镜像,通常会搭建专属的私有仓库,官方提供了Registry,本文来介绍私有仓库的搭建,以及镜像的简单管理。 Docker Registry 私有仓库搭建 1) 通过docker search搜索registry镜像。docker search registry 2) 拉取registry最新镜像。dock原创 2020-11-11 09:20:40 · 973 阅读 · 0 评论 -
Dockerfile STOPSIGNAL、SHELL指令 语法解析
STOPSIGNAL 指令 STOPSIGNAL 语法STOPSIGNAL signal STOPSIGNAL 语义 · STOPSIGNAL指令设置将发送到容器以退出的系统调用信号。这个信号可以是一个有效的无符号数字,与内核的syscall表中的位置相匹配,例如9,或者是SIGNAME格式的信号名,例如SIGKILL。 SHELL 指令 SHELL 语法SHELL ["executable", "parameters"] SHELL 语义 · SHELL指令允许原创 2020-11-10 19:02:29 · 1526 阅读 · 0 评论 -
Dockerfile ENTRYPOINT指令 语法解析
系列博文之前讲解过RUN和CMD,其中CMD可以作为容器启动时的默认命令使用,而ENTRYPOINT是位于CMD之上的命令,同样可以可以设置容器启动时的入口点,可以使用ENTRYPOINT做许多系统初始化级别的工作。 ENTRYPOINT 语法# exec形式,首选形式.ENTRYPOINT ["executable", "param1", "param2"]# shell形式.ENTRYPOINT command param1 param2 ENTRYPOINT 语义 · ENT原创 2020-11-10 18:59:40 · 4991 阅读 · 0 评论 -
Dockerfile HEALTHCHECK指令 语法解析
Docker实际应用中,为了保证高可用性等,肯定会遇到需要实时或定时检测Docker容器以及容器内服务运行状态的需求,此时就会用到健康检查机制,dockerfile内部提供了HEALTHCHECK指令,用来完成对Docker容器的健康检测。 HEALTHCHECK 语法# 通过在容器内部运行命令来检查容器运行状况.HEALTHCHECK [OPTIONS] CMD command# 禁用从基映像继承的任何运行状况检查.HEALTHCHECK NONE HEALTHCHECK 语义原创 2020-11-10 13:16:44 · 960 阅读 · 0 评论 -
Dockerfile ARG指令 语法解析
无论何种编程语言或脚本中,都不可避免的会应用到变量。dockerfile中使用ARG来定义变量,本文来对ARG指令定义变量进行解析。 ARG 语法:ARG <name>[=<default value>] ARG 语义: · ARG指令用于定义一个变量,可以使用--build-arg <varname>=<value>标志在构建时通过docker build命令传递给构建器。 · 如果指定的构建参数未在dockerfile中定义,则构建原创 2020-11-09 20:28:00 · 8973 阅读 · 3 评论 -
Dockerfile ONBUILD指令 语法解析
ONBUILD 语法ONBUILD <INSTRUCTION> ONBUILD 语义 · ONBUILD指令向镜像中添加一条触发器指令,稍后将在该镜像用作另一个构建的基础时执行。触发器将在下游构建的上下文中执行,就像它是在下游dockerfile中的FROM指令之后立即插入的一样。 · 任何构建指令都可以注册为触发器。 · 如果正在构建一个镜像,该镜像将用作构建其他镜像的基础,例如,应用程序构建环境或可能使用特定于用户的配置进行自定义的守护程序,则此功能非常有用。原创 2020-11-09 20:22:29 · 552 阅读 · 0 评论 -
Dockerfile USER、WORKDIR、VOLUME指令 语法解析
USER 指令 USER 语法USER <user>[:<group>]USER <UID>[:<GID>] USER 语义 · 运行镜像和dockerfile中使用RUN、CMD和ENTRYPOINT指令指定时,USER指令用于设置用户名(或UID),可选的设置用户组(或GID)。 · 当为用户指定组时,用户将只有指定的组成员资格。任何其他配置的组成员身份都将被忽略。 · 当用户没有主用户组时,镜像会在root用户组下运行。原创 2020-11-09 14:42:19 · 3573 阅读 · 0 评论 -
Dockerfile COPY指令 语法解析
使用dockerfile创建镜像时,肯定会涉及到文件复制、文件下载等操作,这时需要COPY指令来完成。 COPY 语法COPY [--chown=<user>:<group>] <src>... <dest>COPY [--chown=<user>:<group>] ["<src>",... "<dest>"] COPY 语义 · 第二种形式要求路径包括空格。 · --chown仅支持d原创 2020-11-09 11:11:32 · 5560 阅读 · 1 评论 -
Dockerfile ADD指令 语法解析
使用dockerfile创建镜像时,肯定会涉及到文件复制、文件下载等操作,这时需要ADD指令来完成。 ADD 语法ADD [--chown=<user>:<group>] <src>... <dest>ADD [--chown=<user>:<group>] ["<src>",... "<dest>"] ADD 语义 · 第二种形式需要路径包含空格。 · --chown仅支持docker原创 2020-11-09 10:38:03 · 2502 阅读 · 0 评论 -
Dockerfile ENV指令 语法解析
某些应用场景下,需要对Dokcer镜像加入环境变量,这时需要ENV指令。本文本来具体对ENV指令进行解析。 ENV 语法ENV <key>=<value> ... ENV 语义 · ENV指令将环境变量的值设置为。 · ENV指定的环境变量,可以在后续所有构建阶段使用,并且可用于行内替换使用。 · 环境变量的值可以被其他环境变量引用,此时,如果引号字符没有转义,将被删除。 · 与命令行解析类似,引号(")和反斜杠(\)用于包含空格的值,例如:# 引号原创 2020-11-07 16:02:45 · 3667 阅读 · 0 评论 -
Dockerfile EXPOSE指令 语法解析
Docker容器启动后,需要宿主机和容器端口进行映射,以便容器内服务对外暴露,这可以在启动是通过docker run -p host:port ...指定,也可以在镜像构建时通过dockerfile的EXPOSE指令指定,本文本来具体对EXPOSE指令进行解析。 EXPOSE 语法EXPOSE <port> [<port>/<protocol>...] EXPOSE 语义 · EXPOSE指令声明Docker容器在运行时侦听的网络端口。 · 通过原创 2020-11-07 15:56:47 · 4521 阅读 · 1 评论 -
Dockerfile CMD指令 语法解析
Docker通过dockerfile创建镜像时,RUN和CMD是相当重要的命令,本文对这CMD指令进行解析。 CMD 语法# exec形式,这是首选形式.CMD ["executable","param1","param2"]# 提供给ENTRYPOINT的默认参数.CMD ["param1","param2"]# shell形式.CMD command param1 param2 CMD 语义 · dockerfile中只能包含一个CMD指令,如果存在多个,只有最后一个CMD原创 2020-11-06 10:16:04 · 2321 阅读 · 0 评论 -
Dockerfile RUN指令 语法解析
Docker通过dockerfile创建镜像时,RUN和CMD是相当重要的命令,本文对这RUN指令进行解析。 RUN 语法# shell形式,命令在shell中运行,默认情况下,Linux是/bin/sh -c、Windows是cmd /S /C .RUN <command># exec形式.RUN ["executable", "param1", "param2"] RUN 语义 · RUN指令在当前镜像的顶层上新建层执行命令,同时提交执行结果。提交的结果会在接下来的原创 2020-11-06 09:59:30 · 7521 阅读 · 0 评论 -
Dockerfile MAINTAINER和LABEL指令 语法解析
任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者等等。Docker提供了MAINTAINER和LABEL用于处理镜像的元数据。 MAINTAINER 指令 MAINTAINER 语法MAINTAINER <name> MAINTAINER 语义 指定镜像作者信息,即镜像的Author属性。LABEL是一个更灵活的版本,可以替代MAINTAINER,LABEL可以设置任何需要设置的元数据原创 2020-11-06 09:30:33 · 13697 阅读 · 2 评论 -
Dockerfile FROM指令 语法解析
凡是编写Dockerfile,几乎开始都会是FROM命令,它决定了Dockerfile构建出的镜像为何物,本文就来了解一下FROM的语法、语义以及对应的示例。 语法FROM [--platform=<platform>] <image> [AS <name>]FROM [--platform=<platform>] <image>[:<tag>] [AS <name>]FROM [--platform=<原创 2020-11-05 09:43:35 · 42205 阅读 · 4 评论 -
Dockerfile Docker build 构建命令
Docker应用中,起初肯定是使用已有镜像,来完成容器的应用。随着应用的深入,不可避免的,就会出现个性化的需求,这时,就需要构建属于我们自己的镜像。 Docker提供了docker build命令,用于使用Dockerfile创建镜像。 语法docker build [OPTIONS] PATH | URL | - 语义 使用Dockerfile创建镜像,可以自定义镜像构建过程。 参数参数名参数描述–add-host增加自定义HOST到IP的映射–b原创 2020-11-05 09:39:30 · 1675 阅读 · 1 评论 -
Docker 升级至最新版本
博主有一台Centos7自带的Docker版本为1.13.1,这个版本的Docker对于一些指令支持有限,比如FROM --platform=xxx、FROM前通过ARG定义变量等等,所以将Docker升级到最新版本,文中所列也是通过度娘得来的,做了整理和进一步细化,供有需要的人,能快速完成Docker版本的升级。 · 查看系统当前Docker软件rpm -qa | grep docker · 删除当前Docker版本 根据上面获得的Dokcer软件列表,删除这些软件。yum rem原创 2020-11-04 19:30:06 · 1767 阅读 · 0 评论 -
Docker 三大核心之镜像 基于本地模板导入创建镜像 export、import、save、load
使用Docker的过程中,很多时候Docker仓库中提供的镜像已经足够我们使用,但难免会出现,由于业务原因或其他特殊原因需要对镜像进行改造的场景,此时,需要对镜像进行扩展,以使镜像可以满足我们的需求。 创建镜像一般有三种方式: · 基于已有镜像创建镜像。 · 基于本地模板导入镜像。 · 基于dockerfile创建镜像。 今天,就先来说说基于本地模板导入镜像。 公用模板导入 · 模板下载 访问https://wiki.openvz.org/Download/t原创 2020-11-04 09:35:24 · 665 阅读 · 0 评论 -
Docker 三大核心之镜像 基于已有镜像创建镜像
使用Docker的过程中,很多时候Docker仓库中提供的镜像已经足够我们使用,但难免会出现,由于业务原因或其他特殊原因需要对镜像进行改造的场景,此时,需要对镜像进行扩展,以使镜像可以满足我们的需求。 创建镜像一般有三种方式: · 基于已有镜像创建镜像。 · 基本本地模板导入镜像。 · 基于dockerfile创建镜像。 今天,就先来说说基于已有镜像创建镜像。 docker commit 语法及语义 语法:docker commit [OPTIONS] CONTAINE原创 2020-11-03 18:32:59 · 673 阅读 · 0 评论 -
Docker 进入容器方式详解
Docker容器可以理解为一个简化版的Linux系统,包括root用户权限、进程空间、用户空间等,既然是操作系统,就可以进入到容器内部,完成Linux相关的操作。本文介绍几种目前比较常用的进入Docker容器的方式。 docker attch docker attach应该算是一个已经过时的命令,但最新的docker版本仍提供其功能,下面来演示如果使用其进入到已启动容器中。 1. 使用docker pull nginx拉取nginx镜像,通过docker images可以查看镜像是否已经拉取原创 2020-11-03 13:21:33 · 4746 阅读 · 1 评论 -
Docker 三大核心之容器 之二 生命周期命令
容器是Docker的三大核心之一。 Docker容器类似于一个轻量级沙箱,Docker利用容器来运行和隔离应用。 容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。 可以把容器看做精简版的Linux系统环境,其包含了root用户权限、进程空间、用户空间和网络空间等。 镜像自身是只读的,容器从镜像启动时,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。 docker create 创建容器 语法:docker cre原创 2020-11-02 19:32:55 · 220 阅读 · 0 评论 -
Docker 三大核心之容器 之一 docker ps
容器是Docker的三大核心之一。 Docker容器类似于一个轻量级沙箱,Docker利用容器来运行和隔离应用。 容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。 可以把容器看做精简版的Linux系统环境,其包含了root用户权限、进程空间、用户空间和网络空间等。 镜像自身是只读的,容器从镜像启动时,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。 docker ps 语法 语法:docker ps [OPTIO原创 2020-11-02 19:14:21 · 1719 阅读 · 0 评论 -
Docker 三大核心之镜像 操作指令
镜像是Docker的三大核心之一。 Docker镜像类似于VMware虚拟机引擎,镜像是Docker的基础,可以基于镜像创建容器,Docker提供了一套十分简单的机制来创建和更新现有镜像,可以从仓库中下载需要的镜像文件,通过Docker提供的命令来使用镜像文件。 Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认镜像仓库下载,默认仓库为Docker Hub公共注册服务器中的仓库,可以配置国内镜像提高下载速度。同时也可以配置自定义镜像仓库,维护自由的镜像集原创 2020-10-24 21:03:36 · 373 阅读 · 0 评论 -
Docker 配置阿里云镜像
Docker默认从Docker Hub公共注册服务器中的仓库拉取镜像,Docker Hub提供的镜像地址为:https://hub.docker.com/,但是由于国内国外网络的限制,下载速度会比较慢,对平时工作影响十分大。 基于这些原因,像网易、阿里提供了国内镜像,设置国内镜像后,下载速度会大大提升,让使用者用起来更舒心。 注册阿里云账号 直接访问https://www.aliyun.com/,登录或者注册账号,相信现在很多开发者都有阿里云账号,当下,普通开发者与阿里系已经很难脱离关系了原创 2020-10-24 19:23:33 · 4786 阅读 · 0 评论 -
Dokcer 灵魂三问:What?Why?How?
在计算机发展的过程中,跳过计算机初期发展的尝试期,进入PC时代之后,性能完全取决于CPU主频高低或内存大小,比如IBM大型机服务器,性能完全取决于单机CPU堆砌,利用单机可以支撑庞大的应用,但造价高昂、扩展性较低、无法广泛应用。 随着进入云计算时代,面对巨大算力的需求,单机已无法完全满足当下需求,虚拟化便成为了云计算不可或缺的一部分。 虚拟化并非今时今日才有的技术,虚拟化可以通过硬件模拟来实现,也可以通过操作系统来实现。近年明显基于操作系统来实现虚拟化更加火爆,其可依赖于操作系统已有的特性,而D原创 2020-10-21 22:07:32 · 301 阅读 · 1 评论