Go语言中文网 为您找到相关结果 60

Docker源码分析(九):Docker镜像

1.前言 回首过去的2014年,大家可以看到Docker在全球刮起了一阵又一阵的“容器风”,工业界对Docker的探索与实践更是一波高过一波。在如今的2015年以及未来,Docker似乎并不会像其他昙花一现的技术一样,在历史的舞台上热潮褪去,反而在工业界实践与评估之后,显现了前所未有的发展潜力。 究其本质,“Docker提供容器服务”这句话,相信很少有人会有异议。那么,既然Docker提供的服务属于“容器”技术,那么反观“容器”技术的本质与历史,我们又可以发现什么呢?正如前文所提到的,Docker使用的“容器”技术,主要是以Linux的cgroup、namespace等内核特性为基础,保障进程或者进程组处于一个隔离、安全的环境。Docker发行第一个版本是在2013年的3月,而cgroup的...阅读全文

博文 2015-03-29 20:01:21 孙宏亮

go源码的 github 只读镜像

发现了一个 go 源码的 github 只读镜像,代码几乎和官方同步,不用翻墙可以看Go最新变化了。 另外,源码编译安装也可以通过这个镜像完成,不需要另外到 http://golang.org/dl 下载了,因为这个镜像包含了go所有分支和tag。 镜像地址:[https://github.com/jnwhiteh/golang](https://github.com/jnwhiteh/golang...阅读全文

registry v2 解析以及如何实现token验证

提到registry v2,主要改进是支持并行pull镜像,镜像层id变成唯一的,解决同一个tag可能对应多个镜像的问题等等。如果还不太了解,可以且听我细细道来。 ## 首先不得不说的是v2 新加了一个概念Digest 他是基于内容进行寻址(Content-addressable)算法算出来的一串hash值。简单的说就是内容不同,得出了的digest值是不同的,但是内容相同的话,得出的digest值是一定相同的。我们的每个镜像层id就是根据每个镜像层的内容得出来的digest的。 所以你在改动镜像层以后生成的digest就不同了,而不动的话,这个digest还是不变的,那么这个digest id是什么时候生成的呢?我们在本地构建镜像时生成的镜像层id每次都是不一样的,这个d...阅读全文

企业级Registry Harbor

![alg tag](http://static.oschina.net/uploads/img/201603/15130717_M8y6.png) 容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,部署在私有环境内的Registry是非常必要的。Project Harbor是由VMware公司中国团队为企业用户设计的Registry server开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能,欢迎使用和反馈意见。 一些界面截图: ![create project](http://static.oschina.net/uploads/img/201603/1513093...阅读全文

开源项目 2016-03-14 16:00:00 vmware

google host 配置

#google hosts 2015 by www.oicqzone.com #更新时间:2015年1月22日 14:16:05 #更新地址:http://www.oicqzone.com/pc/google-hosts.html #base services 64.233.169.103 google.com 64.233.169.103 www.google.com 64.233.169.103 m.google.com 64.233.169.103 scholar.google.com 64.233.169.103 translate.google.com 64.233.169.103 books.google.com 64.233.169.103 appengine.google.c...阅读全文

博文 2015-06-21 03:00:00 lsl8966

时速云镜像市场发布 欲打造中国版的Docker Hub

以Docker为代表的容器技术正在席卷整个IT业界,容器技术赋予了企业开发部署运维更多的敏捷性。而在以Docker为代表的容器虚拟化技术市场,国内云计算创业公司时速云TenxCloud是最早的开拓者之一,时速云推出了国内首个轻量级的容器云平台。其倡导以容器化应用作为云端应用交付的标准,为开发者和企业提供快速构建、集成、部署、运行容器化应用的云平台,从而提高应用开发的迭代效率,简化运维环节,降低运维成本。 Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到主流的 Linux 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口,性能开销很低,可以很容易地在机器和数据中心中运行。 Docker的以下优势决定了容器技术将会引领下一次云计算的变革: 1)...阅读全文

基于tutum/lamp镜像搭建GoLang网络应用

2015-01-27 wcdj 摘要:Docker Hub上有较多的LAMP镜像,其中tutum/lamp镜像较为出名,本文使用tutum/lamp作为基础镜像,并在其上添加go编译环境,然后创建和测试一个支持GoLang网络应用的镜像。 过程如下: 1,从Docker Hub下载tutum/lamp镜像 root@gerryyang:~# docker search -s 5 lamp NAME DESCRIPTION STARS OFFICIAL AUTOMATED tutum/lamp LAMP image - Apache listens in port 80, an... 47 [OK] dockerfiles/centos-lamp 8 [OK] root@gerryyang:~...阅读全文

博文 2015-01-29 20:00:10 delphiwcdj

Macbook Pro上运行windows to go

今年一咬牙入手了台Macbook Pro,操作系统为Sierra,其他都还满意,无奈当时为节约成本硬盘配置只有128G。一般来讲,128G对于上网、娱乐以及编程够用,但是工作上需要安装visual studio开发环境,虽然vs2017也提供了mac版,实在是不喜欢mac vs的风格。接下来有两个选项: 安装虚拟机 在虚拟机里配置win10,然后安装vs,但是有个问题,虚拟机虽然切换比较方便,对资源比如内存的占用不可不忽视,作为入门级的macbook还是要慎重; 安装双系统 安装双系统,苹果公司已经考虑到windows的强势,主动提供了安装工具bootcamp助理,可以将win10安装在本地,启动时选择运行mac还是win10,但是问题还是自带硬盘太小,装完win10后所剩无几。 自然而然想...阅读全文

博文 2017-09-06 22:31:02 topsun888

codis 找不到"golang.org/x/tools/go/vcs"

装codis的时候,坑在了make的时候报golang.org/x/tools/go/vcs这个错误,确实坑,网上虽然有方法,但是不详细,对于我这种没用过go的人来说困难。下面说说具体的操作步骤:环境是centos7 1. 执行 go get github.com/golang/tools, (镜像来自 https://godoc.org/golang.org/x/tools) mkdir -p src/golang.org/x/ cp -r src/github.com/golang/tools src/golang.org/x/ 2. 然后再执行go get github.com/tools/godep。 此时godep安装在你的GOPATH\bin目录下。 3. 此时在进入codis目...阅读全文

博文 2016-07-02 10:00:01 qq_21057321

基于 Docker 的云资源管理与调度平台OpenDCP

OpenDCP是一个基于Docker的云资源管理与调度平台,集镜像仓库、多云支持、服务编排、服务发现等功能与一身,支持服务池的扩缩容,其技术体系源于微博用于支持节假日及热点峰值流量的弹性调度DCP系统。OpenDCP允许利用公有云服务器搭建起适应互联网应用的IT基础设置,并且将运维的工作量降到最低。 特性 基于Docker容器技术进行封装,不要求使用者掌握Docker。 支持阿里云公有云平台,可根据需要随时申请和释放服务器,显著降低运营成本 涵盖虚拟机创建、镜像打包、镜像部署、服务发现各个环节,简单易用,易于组织内推...阅读全文

在 Kubernetes 中构建容器镜像kaniko

通常,标准 Dockerfile 的生成需要与 Docker 后台进程交互访问,也就是需要本机 root 权限。如果是在 Docker 后台进程无法暴露的场景下,生成容器镜像就变得很困难。 kaniko 是 Google 开源的一个工具,旨在帮助开发人员从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像。 **工作原理:** kaniko 作为一个容器镜像运行,它接受三个参数:一个 Dockerfile ,一个构建上下文以及将镜像推送到的注册表。它在执行程序镜像中提取基本镜像的文件系统。然后,在 Dockerfile 中执行任何命令,快照用户空间中的文件系统。Kaniko 在每个命令后都会将一层已更改的文件附加到基本镜像。最后,执行程序将新镜像推送到指...阅读全文

分析和浏览 Docker 容器镜像内部的工具Dive

Docker 容器镜像是一个轻量、独立、含有运行某个应用所需全部软件的可执行包,那么一个 Docker 镜像里面会包含什么东西?这个名为 Dive 的工具正是用来分析和浏览 Docker 镜像每层的内容。 通过分析 Docker 镜像,我们可以发现在各个层之间可能重复的文件,并通过移除它们来减小 Docker 镜像的大小。 Dive 是一个用 Go 语言编写的自由开源工具。Dive 工具不仅仅是一个 Docker 镜像分析工具,它还可以帮助使用者用于构建镜像。 **运行截图** ![image](https://static.oschina.net/uploads/space/2018/1126/145112_ehy1_2720166.gif...阅读全文

开源项目 2018-12-05 09:30:01 网友

golang最小docker镜像制作

因为go语言编译好之后为可执行文件,不需要依赖go语言环境即可运行,所以可以在带go语言得docker镜像中编译,编译完成之后将二进制文件拷贝到一个不带go环境的较小的镜像即可,这里采用alpine镜像作为运行的镜像 FROM golang:alpine AS development WORKDIR $GOPATH/src COPY . . RUN go build -o app FROM alpine:latest AS production WORKDIR /root/ COPY --from=development /go/src/app . EXPOSE 8080 ENTRYPOINT ["./app"] 这样制作完成的镜像只有8.5M的大小,其中alpine基础包5.53...阅读全文

博文 2019-05-27 17:34:52 褪色的记忆1994

Kubernetes从Private Registry中拉取容器镜像的方法

话接上文,在《使用go-ceph管理Ceph RBD映像》一文中我们提到了,我们需要自建一个ceph rbd api service用于给我的产品控制台提供RESTful API服务接口。这个服务我也是打算放在kubernetes集群中作为一个Service运行的。这两天完成了这个服务开发,并编写完Service的Dockerfile,将镜像build, tag并push到了我们在阿里云的私有镜像库。但在通过kubectl创建这个Service时,我们遇到了 ErrImagePull、ImagePullBackOff等Pod status,通过kubectl describe pod/{MyPod}命令查看,发现下面错误提示: 23s 5s 2 {kubelet 10.57.136.60} ...阅读全文

博文 2017-02-06 03:01:33 bigwhite

Docker for 开发:容器化你的应用

【编者的话】这篇文章以极简的模式快速搭建一套使用与开发的Docker环境,特别面向了开发中常用的Mac和Windows环境。虽然本文模糊了大量的实现细节,但可作为在开发平台搭建Docker环境有力范本。 【3 天烧脑式容器存储网络训练营 | 深圳站】本次培训以容器存储和网络为主题,包括:Docker Plugin、Docker storage driver、Docker Volume Pulgin、Kubernetes Storage机制、容器网络实现原理和模型、Docker网络实现、网络插件、Calico、Contiv Netplugin、开源企业级镜像仓库Harbor原理及实现等。 作为开发者,我们总是寻找一个捷径或更容易的方法来快速起步,对吧?如果你是团队领导,付出最少的代价让团队站在...阅读全文

博文 2017-07-09 01:43:30 gaohongtao

103101、镜像的构建

1、基础镜像的选择 1.1、编译型语言的容器化(以golang为例) #①构建简单,包含编译是的所有运行环境,但体积大 FROM golang:onbuild EXPOSE 8080 #②构建复杂, 需执行编译动作,体积小 FROM golang:alpine WORKDIR /app ADD . /app RUN cd /app && go build -o goapp EXPOSE 8080 ENTRYPOINT ./goapp #③构建复杂,体积更小,携带工具少,安全性更高(推荐) FROM golang:alpine AS build-env WORKDIR /app ADD . /app RUN cd /app && go build -o goapp FROM alpine RU...阅读全文

博文 2018-08-20 17:34:52 doublegao

【Docker实战】Dockerfile多阶段构建原理

Docker 17.05版本以后,新增了Dockerfile多阶段构建。所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个 FROM 指令。这样做有什么意义呢?老版本Docker中为什么不支持多个 FROM 指令在17.05版本之前的Docker,只允许Dockerfile中出现一个FROM指令,这得从镜像的本质说起。在《Docker概念简介》 中我们提到,你可以简单理解Docker的镜像是一个压缩文件,其中包含了你需要的程序和一个文件系统。其实这样说是不严谨的,Docker镜像并非只是一个文件,而是由一堆文件组成,最主要的文件是 层。Dockerfile 中,大多数指令会生成一个层,比如下方的两个例子:# 示例一,foo 镜像的Dockerfile# 基础镜像中已经存在若干个...阅读全文

博文 2018-09-03 20:34:58 脉冲云DevOps

这可能是把Docker的概念讲的最清楚的一篇文章

Docker 是世界领先的软件容器平台,本文主要来介绍下关于Docker的那些事儿,主要包含以下内容: 容器 什么是Docker? Docker思想、特点 Docker容器主要解决什么问题 容器 VS 虚拟机 Docker基本概念: 镜像(Image),容器(Container),仓库(Repository) 一 先从认识容器开始 1.1 什么是容器? 先来看看容器较为官方的解释 一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。 容器赋予了软件独立性,使其免受外在环境差异...阅读全文

博文 2018-09-20 17:08:27 Java1324

源创会2017沈阳站讲稿:基于Harbor的高可用企业级私有容器镜像仓库部署实践

上周六开源中国的源创会在沈阳举办了一次技术活动,很荣幸以本地讲师的身份和大家交流了一个topic: “基于Harbor的高可用企业级私有容器镜像仓库部署实践”。之所以选择这个topic,是因为这是我们团队的项目实践心得。很多企业和组织在深入使用Docker之后,都会有类似的高可用私有容器仓库搭建的需求,于是我就把我们摸索的实践和填坑过程拿出来,用30分钟与大家分享一下。另外这算是一个入门级的分享,并未深入过多原理。以下就是本次分享的内容讲稿整理。如有不妥或不正确的地方,欢迎交流指正。 大家下午好,欢迎各位来到源创会沈阳站。在这里我也代表沈阳的IT人欢迎源创会来到沈阳,希望能有更多的像源创会这样的组织到沈阳举办技术活动。非常高兴能有这个机会在源创会这个平台上做分享, 今天和大家一起探讨的题目是...阅读全文

博文 2017-10-25 06:54:55 bigwhite

Docke 镜像的构建过程工具Habitus

Habitus 是一个独立的 Docke 镜像的构建过程工具,这是一个命令行工具,基于 Dockerfile 和 build.yml 构建 Docker 镜像。 Habitus 可将工作流添加到 Docker 镜像的构建过程中。这意味着你可以创建一个构建链,根据工作流生成最终的 Docker 镜像。如果你的代码是像 Java 或 Go 这样的编译语言,或者在构建过程中需要使用 SSH 密钥等私密文件,则此功能特别有用...阅读全文

[Docker性能优化]优化Docker镜像(3)减小Docker镜像尺寸

#减小镜像尺寸有两种方法 使用链式指令 分离编译镜像和部署镜像使用链式指令&& 构建历史.png 个人觉得镜像会变大的其中一个原因就是元数据的大量化,试想一下对于每个指令的执行,docker都会为该指令所在的层次打上元数据标签。#####################即对于每一条指令都会打上元数据,镜像总和=元数据总和+每一层镜像总和试想最坏的情况,待到有很多条构建指令时,且每一条构建语句中只有一条构建指令,那样的元数据总和就会变得非常大了 ################为了解决这个问题,我们使用&&进行链式指令,即将多条指令使用&&链接起来,使得一条构建语句中包含多个执行指令,这样的话能够有效减少元数据总和 当然还有一点不得不提的是:################为了整个镜像层尺寸,...阅读全文

博文 2017-06-17 14:07:35 行书以鉴

容器镜像分析对比工具container-diff

container-diff 是 Google 开源的一个分析和比较容器镜像的工具,可用来分析 Docker 镜像之间的差异。 container-diff 可通过几个不同的标准(角度)来检查镜像,包括: Docker 镜像历史 镜像文件系统 Apt 包管理器 pip 包管理器 npm 包管理器 macOS Linux 不想使用 sudo 的话还可以这样 Windows 下载 [container-diff-windows-amd64.exe](https://storage.googleapis.com/container-diff/latest/container-diff-windows-amd64.exe) 文件,重命名为 `container-diff.exe...阅读全文

如何让docker镜像尽可能小

有问题请关注我的github: https://github.com/fanux 如何让镜像尽可能小 很容器想到from scratch, 就是没任何基础镜像 FROM scratch COPY p / ENTRYPOINT ["/p"] 有几点要注意: ENTRYPOINT 或者CMD 必须要用[]这种模式,如果直接/p会用sh去启动,而scratch没有shell导致失败 二进制程序必须静态编译,也就是不能依赖libc什么的动态库 动态编译的bin程序: [root@dev-86-205 ci-sftp]# ldd p linux-vdso.so.1 => (0x00007ffd6ef7b000) libpthread.so.0 => /lib64/libpthread.so.0 (0x...阅读全文

博文 2017-10-09 11:34:41 fanux

工欲善其事,必先利其器:安装Fabric

目标 顺利下载Hyperledger Fabric 明确bootstrap.sh脚本做了哪些事 任务实现 年青人,关键时刻到了,这门神功必须要有大毅力且拥有常人所不具备的耐性的人才能练成,所以这一步就是为了考验你的毅力及耐性而设置的。 要想学好神功,必须先有相应的利器,而这把利器就只能由自己根据那些妖孽留下的线索来锻造。 1.3.1 下载Fabric-samples与二进制文件 为了方便后期管理,在当前登录用户的HOME目录下创建一个空目录并进入该目录 $ mkdir hyfa && cd hyfa 新建文件bootstrap.sh并添加内容 $ vim bootstrap.sh 将 https://github.com/hyperledger/fabric/blob/master/scri...阅读全文

博文 2019-01-09 11:34:47 Terry_007

registry v2 解析以及如何实现token验证

提到registry v2,主要改进是支持并行pull镜像,镜像层id变成唯一的,解决同一个tag可能对应多个镜像的问题等等。如果还不太了解,可以且听我细细道来。 首先不得不说的是v2 新加了一个概念Digest 他是基于内容进行寻址(Content-addressable)算法算出来的一串hash值。简单的说就是内容不同,得出了的digest值是不同的,但是内容相同的话,得出的digest值是一定相同的。我们的每个镜像层id就是根据每个镜像层的内容得出来的digest的。 所以你在改动镜像层以后生成的digest就不同了,而不动的话,这个digest还是不变的,那么这个digest id是什么时候生成的呢?我们在本地构建镜像时生成的镜像层id每次都是不一样的,这个digest是我们在pus...阅读全文

博文 2017-02-09 08:07:50 Mrexamo

Docker 使用简介

Docker 是使用 GoLang 开发的开源容器引擎,可以方便的打包开发好的应用,然后分发到任意 linux 主机上。 与传统的虚拟机相比拥有以下优势: 高效的系统资源利用率 由于不需要进行硬件虚拟和运行完整的操作系统等额外开销,无论是应用执行速度、内存损耗或者文件存储速度, Docker 都更加高效 更快的启动速度 Docker 容器应用直接运行与宿主内核,无需启动完整的操作系统,可以做到秒级启动 一致的运行环境 Docker 镜像提供了除内核外的完整运行环境,确保了应用运行环境的一致性 持续交付和部署 可以通过 Docker 镜像来实现服务的持续交付、部署。使用 Dockerfile 来构建镜像,使用持续集成系统进行集成测试;使用镜像结合持续部署系统进行自动部署 迁移轻松 只需要迁移镜...阅读全文

博文 2019-04-21 22:34:41 jouyouyun

Docker 文件系统以及启动容器的文件系统变化

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 本文主要介绍一下 Docker 基础的东西,先介绍一下我的实现环境: 1. windows 10 正式版 1. Docker Toolbox 1. Docker version 1.8.2 1. 官方镜像 ubuntu:latest 这里我们主要只说 aufs/containers/graph 这三个目录。 1. 先进入 Docker 文件系统目录 ll /var/lib/docker #其中目录是这样的 /var/lib/docker -> /mnt/sda1/var/lib/docker/ df -h # 查看挂载情况 Filesystem Size Used Available Use%...阅读全文

博文 2017-02-09 18:41:30 widuu

基于Dockerfile构建新镜像

Docker一共有两种构建镜像的方法(都是基于基础镜像构建新的镜像,用户当然也可以一步一步构建自己的镜像) 使用docker commit构建 使用docker build和Dockerfile命令构建 使用docker commit创建一个新的镜像 1.运行一个基础镜像,生成一个基础的容器 sudo docker run -t -i ubuntu /bin/bash 2.在运行的容器中进行修改,安装需要的软件并进行配置 apt-get -y update apt-get install -y apache2 3.使用exit命令退出容器 exit 4.使用docker commit命令生成一个新的镜...阅读全文

博文 2018-12-03 00:34:44 fgは

Docker学习笔记(一)

**1**.什么是Docker,跟传统虚拟机的不同之处,为什么使用Docker。 Docker基于Linux内核的cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其他隔离的进程,也被称为容器。 docker在容器的基础上进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大简化了容器的创建和维护,使得与传统虚拟机技术相比更加轻便快捷。 与传统虚拟机技术相比,传统虚拟机技术是虚拟一套硬件,在上面运行一个完整的操作系统,再在操作系统上运行所需应用进程;而容器的应用进程运行于宿主内核,容器内没有自己的内核,也没有虚拟硬件,因此,Docker要比传统虚拟机技术更加轻便。 ![image...阅读全文

博文 2018-01-17 20:43:18 yinshidaoshi

glide install 失败

glide install 失败用gin框架当例子来测试,每次install都失败,原因都是一样,有的包出错,无法下载:golang.org/x/sys/unix其实是因为网络的原因,go get不能直接访问到golang.org/x的模块。解决方案如下通过github其他路径下获取golang,org/x的镜像文件,并通过软链接的方式,加入到本地golang.org/x中。git clone https://github.com/golang/net.git$GOPATH/src/github.com/golang/netgit clone https://github.com/golang/sys.git$GOPATH/src/github.com/golang/sysgit clone...阅读全文

博文 2018-08-16 20:35:11 Michael_001

DockOne微信分享(七十七):用Harbor实现容器镜像仓库的管理和运维

【编者的话】本次分享主要讲述了在开发运维中的管理容器镜像方法。为了便于说明原理,较多地使用Harbor作为例子。 内容主要包括: 开发和生产环境中镜像仓库的权限控制;镜像远程同步(复制)的原理;大规模应用镜像发布方式;镜像删除和空间回收;Registry高可用性设计。 首先简单介绍一下Harbor项目。Harbor是由VMware中国研发团队负责开发的开源企业级Registry,可帮助用户迅速搭建企业级的Registry服务。该项目发布5多个月以来,深受用户喜爱,在GitHub获得了近1000个点赞星星和200多个Forks。有兴趣的朋友可以使用: https://github.com/vmware/harbor 容器应用的使用越来越普遍,容器最大优点就是开发运维一体化,通过容器镜像打包应用...阅读全文

博文 2017-06-25 16:25:13 project_harbor

创建优化的Go镜像文件以及踩过的坑

在Docker上创建Go镜像文件并不困难,但建立的文件很大,接近1G,使用起来不太方便。Docker镜像的一个主要难题就是如何优化,创建小的镜像。我们可以用多级构建的方法来创建Docker镜像文件,它也不复杂。但由于使用这种方法时,需要用简版的Linux(Alpine),它带来了一系列的问题。本文讲述如何解决这些问题并成功创建优化的Go镜像文件,优化之后只有14M。 单级构建: 我们用一个Go程序作为例子来展示如何创建Go镜像。下面就是这个程序的目录结构。 Go程序的具体内容并不重要,只要能运行就行了。我们重点关注“docker”子目录(“kubernetes”子目录里的文件有别的用途,会在另外的文章中讲解)。它里面有三个文件。“docker-backend.sh”是创建镜像的命令文件,“D...阅读全文

博文 2019-10-24 08:32:44 倚天码农

自己制作docker registry 镜像

自己制作docker registry 镜像 当前registry单独项目已经废弃,取而代之的是distribution ,确切的说,是该项目包括了registry,但是又高于registry,它的目标是成为内容分发的工具,而image只是内容存在的一种形式。 直接通过distribution中的Dockerfile,构建镜像,我们发现构建的镜像非常大,大概有380多M,而官方的registry镜像大小只有30多M,这并不是你的构建过程有问题,因为官方的distribution/image也是300多M之大 通过研究distribution中的Dockerfile,会发现,镜像制作过程中,基础镜像是从golang alpine开始的,所以整个基础镜像就非常大,也就是说打包好的registry...阅读全文

博文 2017-07-21 07:06:50 stepyu

创建最小的Go docker 镜像

虽然曾有一些文章介绍了如何创建一个最小的Go Docker镜像,我也曾写过一篇文章,但是随着Go的新的版本的发布, 以及docker本身的进化,有些技巧已经发生了变化, 本文介绍了最新的创建超小的Go镜像的方法。 一个简单Go程序的镜像 首先让我们创建一个很简单的Go程序: 1234567package mainimport "fmt"func main() { fmt.Println("hello world")} 运行下面的命令会创建一个超小的镜像, 这是我们的第一种方式: 1GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -o app app.go && tar c app | docker import - app:latest ...阅读全文

博文 2018-09-02 22:14:29 smallnest

shipyard中文版v3.0.2更新

Shipyard中文版官方同步更新 中文版shipyard v3.0.2与官方同步更新,更新内容详细可见GITHUB:https://github.com/dockerclubgroup/shipyard 本次更新内容包括 1、不列出中间镜像列表 2、修复docker 1.2.1版本以上的网络状态与链接Bug 3、修复多个容器部署bug 4、golang依赖库更新,迁移google依赖至github 5、支持多网络模式的部署 欢迎大家体验新版本的镜像,镜像地址hub:https://hub.docker.com/r/dockerclub/shipyard...阅读全文

博文 2017-02-09 08:11:37 dockerclub

DockOne技术分享(三十七):玩转Docker镜像和镜像构建

【编者的话】本次分享从个人的角度,讲述对于Docker镜像和镜像构建的一些实践经验。主要内容包括利用Docker Hub进行在线编译,下载镜像,dind的实践,对于镜像的一些思考等。 @Container容器技术大会将于2016年1月24日在北京举行,来自爱奇艺、微博、腾讯、去哪儿网、美团云、京东、蘑菇街、惠普、暴走漫画等知名公司的技术负责人将分享他们的容器应用案例。 前言本次分享主要是从个人实践的角度,讲述本人对于Docker镜像的一些玩法和体会。本文中大部分的内容都还处于实验的阶段,未经过大规模生产的实践。特此说明。思虑不全或者偏颇之处,还请大家指正。 镜像应该算是Docker的核心价值之一。镜像由多层组成。那么对于一个层来说,就有了两个角度来看待。一个角度是把这层当做一个独立的单位来看...阅读全文

博文 2017-06-25 15:01:24 xiaolunsanguo

7天玩转云服务器

七天能干什么,赶快加入阿里云大学跟我们一起学习,7天带你玩转云服务器 课时列表 • 课时1:第1天:云服务器ECS是什么 • 课时2:第2天:上云概览——在云服务器上快速搭建个人网站 • 课时3:第3天:云服务器最基本操作——实例管理 • 课时4:第4天:云服务器磁盘管理 • 课时5:第5天:为应用创建备份——快照管理 • 课时6:第6天:轻松复用你搭建好的环境和应用——镜像管理 • 课时7:第7天:加固你的网站——云上应用的安全 开始学习:http://click.aliyun.com/m/27894/ ...阅读全文

构建go应用镜像

1.使用普通系统镜像构建出来的镜像大概 1.2G 左右 FROM centos:7 RUN mkdir -p /go && chmod -R 777 /go && yum -y install git golang && yum clean all ENV GOPATH /go WORKDIR /go RUN go env 2.使用golang 提供的镜像,编译出来的镜像大概1.1G左右 FROM golang:1.11.1 MAINTAINER cain.li@yingzt.com RUN go version 3.使用golang 提供的alpine 编译,大概可以降到 680M FROM golang:1.11.2-alpine3.8 ....... 4.使用 stretch 构建镜像...阅读全文

博文 2018-12-05 19:34:52 cain_li

科学安装 golang package

问题出现: 由于 The Great China Wall 的存在 我们下载包的时候,经常会遇到如下图所示的 timeout 下载 package timeout 优雅的解决方法: 开启 goproxy 代理 export GOPROXY=https://mirrors.aliyun.com/goproxy/ 小白步骤 打开一个终端 输入export GOPROXY=https://mirrors.aliyun.com/goproxy/ 执行自己的下载方法 go get 等等 你会发现,快了很多。 尤其是每当遇到万恶的 golang.org/x/ 更方便的写法 如果你是 Linux 或者 mac,将export GOPROXY=https://mirrors.aliyun.com/gopro...阅读全文

博文 2019-08-23 23:32:48 千罹

0-2 Docker环境

说明 鼓励每个开发者在本机安装Docker,并且配置基础的开发环境, 比如配置Redis+MySQL+Golang三个镜像,并且可以随时启动。 启动Redis docker run --name some-redis -d redis:alpine 启动MySQL docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p 13306:3306 -v $HOME/working/sql:/data/devuser/sql -w /data/devuser/sql -d mysql:5....阅读全文

博文 2018-09-16 16:34:40 佛祖君

正式开放 | 阿里云 10 亿级镜像服务正式支持 Helm Charts,云原生交付再加速!

作者 | 阿里巴巴高级开发工程师 谢于宁(予栖) 2018 年 6 月,Helm 正式加入了 CNCF 孵化项目; 2018 年 8 月,据 CNCF 的调研表明,有百分之六十八的开发者选择了 Helm 作为其应用包装方案; 2019 年 6 月,阿里云正式开放了开放云原生应用中心,为国内用户提供了海量的本地化 Helm Charts 应用; 2019 年 7 月,阿里云镜像服务企业版正式开放了 Helm Charts 托管能力,允许企业版用户完成私有 Helm Charts 的推送、拉取以及批量管理; 2019 年 8 月,云原生应用大赛开启(9 月 2 日前均可报名),鼓励和普及 Helm Charts 在国内的使用。 Helm Chart,究竟是什么呢? 伴随着云原生技术的迅速崛起,K...阅读全文

博文 2019-08-14 19:32:43 阿里巴巴云原生

golang 之精简镜像完备篇

引用 golang 镜像很大,因为要开发golang的应用,所以在编写dockerfile的时候 FROM golang:1.13-stretch docker images golang 1.13-stretch d68f79d0e22c 7 weeks ago 763MB 可以看到这个官方的镜像大概有7百多M。而我们的程序只需要运行的环境即可,因此对镜像的大小需要精简一下,以免浪费空间。 下面开始精简镜像 alpine 刚开始也是考虑apline .但是对C的支持不太好。 在docker的alpine镜像上运行cgo项目会出现问题,提示panic: standard_init_linux.go:175: exec user process caused "no such file or ...阅读全文

博文 2019-11-03 23:33:42 aside section._1OhGeD