docker-registry

Docker简介与安装

牧云@^-^@ 提交于 2020-08-08 19:22:14
Docker简介;Docker与虚拟机区别;Docker的优点及内部组件说明;如何安装Docker与镜像加速配置。 什么是Docker Docker提供了一个可以运行你的应用程序的封装,或者说容器。它原本是dotCloud的一个内部项目,开源的时候吸引了大量的关注与讨论,后续导致dotCloud把公司名称改为了Docker Inc。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。 Docker 使用 Google 公司推出的 Go 语言进行开发实现并遵从Apache2.0协议开源,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。 Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker

Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货!)

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-05 22:55:30
通过前面两篇文章,我们已经有了一个“嗷嗷待哺”的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓“纸上得来终觉浅,绝知此事要躬行”),本文从实践角度介绍如何结合我们常用的Gitlab与Jenkins,通过K8s来实现项目的自动化部署,示例将包括基于SpringBoot的服务端项目与基于Vue.js的Web项目。 本文涉及到的工具与技术包括: Gitlab —— 常用的源代码管理系统 Jenkins, Jenkins Pipeline —— 常用的自动化构建、部署工具,Pipeline以流水线的方式将构建、部署的各个步骤组织起来 Docker,Dockerfile —— 容器引擎,所有应用最终都要以Docker容器运行,Dockerfile是Docker镜像定义文件 Kubernetes —— Google开源的容器编排管理系统 Helm —— Kubernetes的包管理工具,类似Linux的yum,apt,或Node的npm等包管理工具,能将Kubernetes中的应用及相关依赖服务以包(Chart)的形式组织管理 环境背景: 已使用Gitlab做源码管理,源码按不同的环境建立了develop(对应开发环境),pre-release(对应测试环境),master(对应生产环境)分支 已搭建了Jenkins服务

Kubernetes学习笔记(六):使用ConfigMap和Secret配置应用程序

岁酱吖の 提交于 2020-08-05 10:42:13
概述 本文的核心是:如何处理应用程序的数据配置。 配置应用程序可以使用以下几种途径: 向容器传递命令行参数 为每个容器配置环境变量 通过特殊的卷将配置文件挂载到容器中 向容器传递命令行参数 在Kubernetes中定义容器时,镜像的ENTRYPOINT和CMD都可以被覆盖(但是在Docker中,镜像的ENTRYPOINT是不能覆盖的)。仅需在容器定义中设置command和args的值。 构建一个镜像 loopechodate.sh:接收一个时间间隔的参数,追加输出当前时间到 /tmp/a.txt #! /bin/sh trap "exit" SIGINT echo "interval is : $1" while : do echo -e "$(date)" >> /tmp/a.txt sleep $1 done Dockerfile FROM alpine COPY loopechodate.sh /bin/ ENTRYPOINT ["/bin/loopechodate.sh"] CMD ["5"] 构建、推送 -> [root@kube0.vm] [~] docker build -t registry.cn-hangzhou.aliyuncs.com/orzi/loopechodate . -> [root@kube0.vm] [~] docker push registry

Kubernetes pull from insecure docker registry

点点圈 提交于 2020-08-04 17:00:30
问题 I have stacked in this phase: Have local docker insecure registry and some images in it, e.g. 192.168.1.161:5000/kafka:latest Have kubernetes cloud cluster, for which I can access only via ~/.kube/config file, e,g. token. Need to deploy below deployment, but kubernetes cannot pull images, error message: Failed to pull image "192.168.1.161:5000/kafka:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://192.168.1.161:5000/v2/: http: server gave HTTP response to

Docker总结1/3---基础篇

流过昼夜 提交于 2020-07-29 06:39:19
目录 1.什么是虚拟化 2.什么是Docker 3.Docker有什么有优点 4.容器与虚拟机比较 5.Docker 组件 (1)Docker服务器与客户端 (2) Docker三大组件 Ⅰ 镜像 Ⅱ 容器 Ⅲ 注册中心 总结 1.什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术。 抽象实体资源,进行重组。 是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组合更好的方式来应用这些资源(不受现有资源的架设方式,地域或物理组态所限制)。 一般所指的虚拟化资源包括【计算能力】和【资料存储】。 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用。 虚拟化技术种类示例:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。 2.什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。 Docker

还没弄懂 Docker 吗?万字详解让你“醍醐灌顶”

女生的网名这么多〃 提交于 2020-07-29 06:36:56
一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。 与传统虚拟化技术相比,它的优势在于: (1)与宿主机使用同一个内核,性能损耗小; (2)不需要指令级模拟; (3)不需要即时(Just-in-time)编译; (4)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制; (5)避免了准虚拟化和系统调用替换中的复杂性; (6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。 总结:Linux Container是一种轻量级的虚拟化的手段。 Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制。Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为lxc是一种操作系统层次上的资源的虚拟化。 2、LXC与docker什么关系? docker并不是LXC替代品,docker底层使用了LXC来实现,LXC将linux进程沙盒化,使得进程之间相互隔离

docker私有镜像仓库部署

*爱你&永不变心* 提交于 2020-07-29 04:00:48
服务端:10.1.1.51 客户端:10.1.1.52 1.安装docker(服务端客户端都需要安装) yum install docker 启动 systemctl start docker 2.安装私有仓库软件(S) docker run -d -p 5000:5000 --restart always --name registry registry:2 查看运行情况 docker ps (未运行则不显示) docker ps -a 3.开启防火墙(S/C都执行) firewall-cmd --zone=public --add-port=5000/tcp --permanent 4.镜像测试(客户端) 共有仓库拉取nginx镜像 docker pull nginx 查看镜像 docker images 生成tag用于上传到S端 docker tag nginx 10.1.1.51:5000/pnginx:v1.0 上传至服务端 docker push 10.1.1.51:5000/pnginx:v1.0 两个会导致上传失败问题 a.传输方式,确认目录下有该文件。(S端执行) echo {"insecure-registries":["10.1.1.51:5000"]} > /etc/docker/daemon.json b.selinux(S端执行) getenforce-

Pushing a local Docker image to a private repository with a self-signed certificate

假装没事ソ 提交于 2020-07-22 06:09:29
问题 I'm trying to push an image, say foo/bar , from my local Docker registry to a registry running on OpenShift 3.11 (actually Minishift v1.33.0+ba29431). The registry is at 192.168.64.3:2376 and it expects HTTPS connections. It uses a self-signed certificate. First I copy the tag for the new image: docker tag foo/bar 192.168.64.3:2376/app/foo/bar This succeeds. Then I try pushing: $ docker push 192.168.64.3:2376/app/foo/bar The push refers to repository [192.168.64.3:2376/app/foo/bar] Get https:

Pushing a local Docker image to a private repository with a self-signed certificate

不问归期 提交于 2020-07-22 06:09:09
问题 I'm trying to push an image, say foo/bar , from my local Docker registry to a registry running on OpenShift 3.11 (actually Minishift v1.33.0+ba29431). The registry is at 192.168.64.3:2376 and it expects HTTPS connections. It uses a self-signed certificate. First I copy the tag for the new image: docker tag foo/bar 192.168.64.3:2376/app/foo/bar This succeeds. Then I try pushing: $ docker push 192.168.64.3:2376/app/foo/bar The push refers to repository [192.168.64.3:2376/app/foo/bar] Get https:

parse error: Invalid numeric literal at line 1, column 8 in script

大城市里の小女人 提交于 2020-07-10 06:58:07
问题 I'm getting above error in my shell script. My task is that I want to delete from my Docker Hub private repository tags which are older than 30 days. So here I have written a small script. After executing I'm getting a parse error. It has jq, echo and curl #!/bin/sh username=rashidmd password=xxxxxxxx HUB_TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'$username'", "password": "'$password'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) #echo $HUB