Docker

How can I use different private docker agents based on parameter in Jenkins declarative pipeline?

谁都会走 提交于 2021-02-13 17:04:11
问题 I am trying to choose a different docker agent from a private container registry based on an a parameter in Jenkins pipeline. For my example let's say I have 'credsProd' and 'credsTest' saved in the credentials store. My attempt is as follows: pipeline { parameters { choice( name: 'registrySelection', choices: ['TEST', 'PROD'], description: 'Is this a deployment to STAGING or PRODUCTION environment?' ) } environment { URL_VAR = "${env.registrySelection == "PROD" ? "urlProd.azure.io" :

Docker运行Nginx服务器

旧巷老猫 提交于 2021-02-13 11:50:00
一、获取Docker容器的Nginx镜像 二、创建Docker容器宿主机挂载目录 # 创建挂载目录,- v 显示创建的目录名 [root@idclooknet ~]# mkdir -vp /opt/docker_cfg/nginx/html /opt/docker_cfg/nginx/logs /opt/docker_cfg/nginx/conf 三、添加Nginx基本配置到挂载的配置文件 #新建nginx配置文件 nginx.conf,并添加配置 [root@idclooknet conf]# touch nginx.conf #nginx配置文件的配置如下 [root@idclooknet conf]# cat nginx.conf user nginx; worker_processes 1 ; error_log /var/log/nginx/ error.log warn; pid /var/run/ nginx.pid; events { worker_connections 1024 ; } http { include /etc/nginx/ mime.types; default_type application /octet- stream; log_format main ' $remote_addr - $remote_user [$time_local]

docker nginx 运行后无法访问

雨燕双飞 提交于 2021-02-13 10:55:59
1 最近在学docker部署,一开始打算将nginx先docker化的。 对照 官方的docker镜像介绍说明 ,进行自定义配置 将官方的nginx.conf复制出来后,修改添加了一些自定义,主要是屏蔽了default.conf,以及include文件夹 sites-available include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-available/*; 官方原先配置 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

Kubernetes 入门到进阶实战,系统性掌握 K8s 生产实践

北慕城南 提交于 2021-02-13 04:18:13
Kubernetes 入门到进阶实战,系统性掌握 K8s 生产实践 最近项目用到kubernetes(以下简称k8s,k和s之间有8个字母),虽然之前也有简单使用过,但认识也不是很全面。也看到很多老铁对Kubernetes和Docker之间的关系搞不清楚,所以我收集整理了两者之间的相关说明,供大家参考学习。 简要介绍: 官方定义1:Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。 官方定义2:k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 与传统技术对比: 接下来我们看两张经典的图: 一、从虚拟化角度: Docker容器与传统虚拟化方式的不同之处,传统的虚拟技术,在将物理硬件虚拟成多套硬件后,需要再每套硬件上都部署一个操作系统,接着在这些操作系统上运行相应的应用程序。而Docker容器内的应用程序进程直接运行在宿主机(真实物理机)的内核上,Docker引擎将一些各自独立的应用程序和它们各自的依赖打包,相互独立直接运行于未经虚拟化的宿主机硬件上,同时各个容器也没有自己的内核,显然比传统虚拟机更轻便。 每个集群有多个节点,每个节点可创建多个容器,kuberbete就是管理这些应用程序所在的小运行环境(container)而生。 作者-\/:

Docker Swarm 集群部署笔记

自古美人都是妖i 提交于 2021-02-12 19:27:21
Docker Swarm 集群的一些概念 节点 swarm集群分为管理节点和工作节点,管理节点可以操作swarm命令控制swarm集群,工作节点是用于运行服务的节点,理论上管理节点也可以是工作节点,一样可以用于运行服务。 一般来说一个swarm集群需要两个以上的管理节点。 服务 在分布式集群应用中,应用的不同部分拆分成“服务”,服务在swarm集群中可部署在多个节点上,形成集群,可使用swarm命令动态扩展服务在swarm集群中运行的实例数量,以满足需求。 技术栈 技术栈是一组相关的服务,它们共享依赖项并且可以一起进行编排和扩展,比如我们的vipay和cash项目的各个服务,可使用compose.yml文件编排成vipay技术栈以及cash技术栈,并使用 docker stack deploy 分别进行部署。技术栈也是swarm集群中层次结构的最高级别。 Docker Swarm 集群的命令栈 docker swarm: 集群管理,子命令有 init, join, leave, update docker service: 服务管理,子命令有 create, inspect, update, remove, tasks docker node:节点管理,子命令有accept, promote, demote, inspect, update, tasks, ls, rm

docker搭建zookeeper集群实战

烈酒焚心 提交于 2021-02-12 19:06:28
拉取zookeeper镜像 docker pull zookeeper 根据镜像创建docker容器 分别创建容器zookeeper、zookeeper2、zookeeper3这三个容器 docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest docker run --privileged=true -d --name zookeeper2 --publish 2182:2181 -d zookeeper:latest docker run --privileged=true -d --name zookeeper3 --publish 2183:2181 -d zookeeper:latest 注意,此时这三个容器还处于单机状态,并没有搭建好集群,我们需要规划一下这三个容器 容器id(已自己的为准) name 虚拟机端口 容器端口 容器ip myid 职责(看启动顺序,详情见zookeeper集群leader选取机制) 7c............. zookeeper 2181 2181 172.17.0.2 1 leader ee................ zookeeper2 2182 2181 172.17.0.3 2 follower ce..

DATE类型的“小陷阱”

浪尽此生 提交于 2021-02-12 19:04:02
朋友提了个问题,虽然不是难题,但确实很细微,很可能就掉进了陷阱中,假设执行日期是2020-08-26,创建测试数据, SQL> create table t01 (id number, insert_time date); Table created. SQL> insert into t01 values(1, to_date( '2020-08-25' , 'yyyy-mm-dd' )); 1 row created. 需求是检索insert_time是昨天的记录,他用这条SQL,通过trunc(sysdate)-1得到前一天的日期作为条件,乍看很合理,但是结果是0, SQL> select * from t01 where insert_time > trunc(sysdate) -1 ; no rows selected 但是他使用trunc(sysdate)-2,能得到记录,“-2”不是前天?不是昨天啊? SQL> select * from t01 where insert_time > trunc(sysdate) -2 ; ID INSERT_TIME ---------- ------------------ 1 25 -AUG -20 其实这个问题很简单,DATE类型在Oracle中定义包含了“年、月、日、时、分、秒”,即使像上例中,to_date('2020

【05】Kubernets:资源清单(控制器

非 Y 不嫁゛ 提交于 2021-02-12 18:54:07
写在前面的话 从上一章节开始,我们一直在学习关于自主式 Pod 的资源清单编写, 但是自主式 Pod 存在着一个问题,就是和我们直接 docker run 运行 docker 容器一样。如果我们想以集群的形式并配合复杂的处理逻辑就不那么好用了。 针对这点,我们将 Pod 的处理交给了控制器。 关于控制器 再详细讲解控制器怎么使用之前,我们得知道控制器是啥,以及我们需要使用哪些。 在讲解 K8S 的 Master 组成的时候说过,Master 节点有个重要组件叫做 Controller Manager。 Controller Manager 由 kube-controller-manager 和 cloud-controller-manager 组成,是 K8S 的核心。 Cloud controller 一般在配合云服务的时候再使用,所以不是我们关心得重点。 kube-controller-manager 由以下主要的控制器组成: 1. Replication Controller(已经废弃) 2. Replicaset 3. Deployment Controller 4. DaemonSet Controller 5. Job / CronJob Controller 6. Volume Controller 7. StatefulSet Controller 8. Node

kubeadm安装kubernets集群

佐手、 提交于 2021-02-12 13:04:17
双12弄了两台腾讯云和百度云机器,组建k8s集群时需要服务器间组成内网环境; 在服务器组成内网后就可以安装kubernets集群了 因只是自己实验需要,所以服务器使用openxxx跨云组建的内网,各位在安装的时候建议还是使用同一内网环境,并使用2v4G以上服务器推介配置 大家的系统环境及各种安装包尽量使用同一个版本 备注:因为我的内网环境和普通的略有不通,所以初始化集群的时候及安装网络插件的时候,需要额外的操作,强烈建议大家即使是实验也请组成二层的内网网络环境来搭建K8S, 1,服务器环境: 软件版本 Kubernetes v1.17.0 Docker version 19.03.5   master:     腾讯云1V2g,CentOS Linux release 7.5.1804 (Core)     公网IP:x.x.x.x     内网IP:172.16.10.9     局域网IP:100.100.100.1     hostname:shiji.com   node1:     百度云1v2g,CentOS Linux release 7.6.1810 (Core)         公网IP:x.x.x.x     内网IP:172.16.0.4     局域网IP:100.100.100.3     hostname:node1 2

初识 Docker

孤者浪人 提交于 2021-02-12 13:01:43
Docker 是个容器应用,可以跨平台安装,并使容器与容器间相“独立”运行;就好比每个容器都是一个虚拟机,而 Docker 成为了个云计算机。构建的容器好比机算机系统,可以在 Docker 中直接启动运行,而无需额外的配制系统环境。 一、安装 Docker Docker 分为企业版和社区版,还有桌面版,可以在 Docker Hub 去下载合适的版本 桌面版就是一个应用,直接安装就可以,很便捷,其它版本官方也有详细的说明 二、使用 Docker 1、获取容器 容器(container)是通过镱像(image)构建的,在 Docker Hub 中获取镱像(image) 搜索 docker search nginx //在 Docker Hub 搜索镱像(image) 获取 docker pull nginx //在 Docker Hub 获取镱像(image) 2、运行容器 运行 docker run --name ichochy-nginx -d -p 80:80 nginx docker run //在新容器(container)中运行命令 --name string //分配一个容器(container)名称 -d, --detach //后台运行容器(container),打印容器(container)ID -p, --publish list //端口映射,宿主机端口:容器