FROM alpine:3.8 apk add xxx安装软件 fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz [91mWARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz: temporary error (try again later) [0mfetch http:/…
1. 前言 使用Docker创建容器时,基础镜像通常选择Ubuntu或Centos,不管哪个镜像的大小都在100MB以上. Alpine Linux是一个面向安全的轻型的Linux发行版. Alpine Linux采用了 musl libc 和 busybox以减小系统的体积和运行时资源消耗. 在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk. 关键的是,相比于其他Linux的Docker镜像,它的容量非常小,仅仅只有5MB. Alpine Linux的官网: http:…
使用 alpine 作为 docker 基础镜像时,运行 apk add ..... 遇到如下错误: WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz: temporary error (try again later) 重试多次无效,最后通过重启 docker 解决.…
刚想找maven自动发布项目到tomcat, 突然看到个好玩的, docker微镜像 -- alpine 直接粘一段: Alpine Linux Docker镜像基于Alpine Linux操作系统,后者是一个面向安全的轻型Linux发行版.不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗.在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询,或者直接通过apk命令查询和安装. 然…
alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗. 2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息 3.Alpine Docker镜像继承了Alpine Lin…
镜像的创建 更换镜像至ustc(为了测试时的速度) 安装musl-dev make gcc linux-headers bison flex以使TC可以编译 拷贝进TC的源代码 进入源代码文件夹进行编译 运行top(或任何不自动退出的程序)以便exec进入容器 Dockerfile如下: FROM alpine RUN rm /etc/apk/repositories RUN echo -e "http://mirrors.ustc.edu.cn/alpine/v3.8/main\nhttp:/…
使用 alpine 作为 docker 基础镜像时,运行 apk add ..... 遇到如下错误: WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz: temporary error (try again later) 重试多次无效,最后通过重启 docker daemon 解决,估计是 docker 的网络管理问题.…
多阶段构建 之前的做法: 在Docker17.05版本之前,构建Docker镜像,通常采用两种方式: 1.全部放入一个Dockerfile 一种方式是将所有的构建过程全都包含在一个Dockerfile中,包括项目及其依赖库的编译.测试.打包流程,这里会带来的一些问题: 镜像层次多,镜像体积较大,部署时间变长 源代码存在泄漏的风险 例如,编写app.go文件,输出Hello World! package main import "fmt" func main(){ fmt.Printf(…
1. 首选要创建一个Dockerfile文件,内容如下: FROM alpine:latest MAINTAINER  lobin <lobin.hotmail.com> RUN apk add --no-cache --update-cache bash CMD ["/bin/bash"] 2. 生成镜像,取名apline-bash [root@VM_0_13_centos demo]# docker build -t apline-bash . Sending buil…
突发奇想要搞一个ssl的服务器,然后我就打起了docker的主意,想着能不能搞一个基于Docker的服务器,这样维护起来也方便一点. 设想 想法是满足这么几点: .NET CORE on Docker Let's Encypt on Docker nginx on Docker用于反向代理 Let's Encypt证书有效期很短,需要能够自动更新 nginx与dotnet都提供了docker部署的方案,但是Let's Encypt的certbot提供的文档强调了这个方法不是很推荐,主要原因是从其…
由于兴致使然,便想学习一点Docker技术.于是,写了这篇学习Docker的体会.笔拙,见谅. 第一件事--把网线插上 相信很多人都被官网的<Sample application>的 docker build -t getting-started .给欺骗了. fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz WARNING: Ignoring http://dl-cdn.alpinelin…
本文基于Gitlab CI/CD及Docker快速实现项目的自动部署. 注意:本文较长,浏览需要12分钟左右. 1.环境要求 以下服务器的操作系统均为Centos7 服务器A:Gitlab 服务器B:GitlabRunner.Docker.docker-compose.Java1.8.maven3.6.3.git ps:这里可以把服务器B的GitlabRunner.Java1.8.maven3.6.3.git单独提出来,独立部署,需要java的原因是maven,maven用于打包. 应用服务器B…
目录 1.Docker安装 1.1 检查 1.2 安装 1.3 镜像加速 1.4 卸载Docker 2.实战Nginx 3.Docker命令小结 4.DockerFile创建镜像 4.1 Dockerfile构建SpringBoot镜像 5.Dockerfile安装Nginx 6.Dockerfile命令小结 6.1 Dockerfile文件中的CMD和ENTRYPOINT指令差异对比 7.镜像分层 8.Volume 9.Volume操作 1.第一种方式 2.第二种方式 3.第三种方式 10.R…
目的 制作一个基础镜像,包含jdk和nginx,这样要将java项目或一些前端页面做成容器,可以稍作修改引用该镜像. Dockerfile FROM alpine:3.8 ENV \ LANG=C.UTF-8 \ NGINX_VERSION=1.14.2 \ JAVA_ALPINE_VERSION=8.181.13-r0 \ JAVA_HOME=/usr/local/java \ PATH=$PATH:/usr/local/java/jre/bin:/usr/local/java/bin ###…
另一个结合harbor自动构建镜像的思路: 即code+baseimage一体的方案 - 程序员将代码提交到代码仓库gitlab - 钩子触发jenkins master启动一次构建 - jenkins master从k8s申请一个jenkins slave编译容器 - 在容器内编译完成以后,获得最终产物 - 将最终产物通过dockerfile生成生产部署镜像(这里省略了测试,其实部署镜像需要测试通过) - 将生产镜像推送到harbor镜像仓库 - jenkins slave生命周期结束,k8s…
  一个简单的docker demo 集成openresty+ redis,可以实现基于redis的动态修改反向代理的处理 环境准备 docker-compose 文件 version: "3" services: nginx-redis: build: ./ image: dalongrong/appdemorong tty: true ports: - "6379:6379" - "8099:80" dockerfile FROM openr…
When we develop the Angular app inside Docker container, we can simulate Production envioment by build Angualr App instead of using 'ng serve': ng build --watch --delete-output-path false '--delete-output-path false': tells it do not delete the dist…
一.制作alpine版的kong镜像 https://github.com/Kong/docker-kong/tree/d4cec3dc46c780a916a40963309554ca81da2b46/alpine 需要修改Dockerfile,增加执行权限,否则会报错: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting conta…
一.安装部署: 想直接一步创建集群的小伙伴直接按以下步骤安装(再往后是记录自己出过的错): 1.生成docker镜像: docker build -t 144.202.127.156/library/mongodb:3.4.10 . docker push 144.202.127.156/library/mongodb:3.4.10     注:记得把地址换成自己的镜像仓库 FROM alpine:edge MAINTAINER chengcuichao RUN apk update &&…
一.制作docker镜像: Dockerfile文件: FROM alpine:latest MAINTAINER chengcuichao RUN apk update && apk add openjdk8 shadow sudo RUN wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.6/elasticsearch-2…
容器技术是微服务技术的核心技术之一,并随着微服务的流行而迅速成为主流.Docker是容器技术的先驱和奠基者,它出现之后迅速占领市场,几乎成了容器的代名词.但它在开始的时候并没有很好地解决容器的集群问题.Kubernetes抓住了这个机遇,以容器编排者(Container Orchestration)的身份出现,对容器集群进行管理和调度,现在已经打败了Docker成为了容器技术事实上的标准.当然K8s内部还是需要Docker的,但它的功能范围被大大压缩了,只是负责底层的容器引擎和镜像(Docker…
日常开发中,我们可以需要通过thread dump 查看线程信息,比如锁,spotify 团队提供了一个web 界面,很方便 以下是简单使用,同时添加了docker 支持 添加docker 支持 clone 代码   git clone <a href="https://github.com/rongfengliang/threaddump-analyzer-docker">https://github.com/rongfengliang/threaddump-analyz…
前言 本文根据参考文章,自己动手试了搭建PHP环境,对里面的Dockerfile的编写 做了最新的修改,以此记录,完整代码查看传送门 说明: 镜像下载过慢,可使用国内镜像加速,具体可自行查询 根据此方法是 用了四个镜像,生成了四个容器,容器之间的启动,根据docker-compose管理 当然也可以 用一个基础镜像,在此镜像的基础上 安装 nginx php等软件,容器也只有一个,就像本机安装一样 目录结构 app # 项目目录 index.php test -test.php data # 数…
基于对elasticsearch中数据监控需要,我尝试了sentinl和elastalert两款工具.虽然elastalert是纯文本,但易配置管理.elk自带的watch需要付费才可使用. 6.2x版本以上,需要先运行elastalert server服务(docker),然后在能使用kibana plugin elastalert插件 docker 安装 elastalert 注:docker安装时需要注意,需要安装最新的docker 17.x版本,否则无法make镜像 issues ela…
parcel 是一个零配置的前端构建工具,相比webpack 更快,同时使用简单以下是 一个简单的使用typescript 开发vue 应用,同时使用parcel 构建,同时集成了docker 构建,代码很简单,同时会有一些碰到问题的解决 项目 说明parcel 是零配置的,我们基本不需要配置多少,基本都是自动的 项目结构   ├── Dockerfile ├── README.md ├── css │ ├── index.css │ └── login.css ├── docker-compo…
今天试用了下mac 版本的dotnetcore sdk,发现还是很方便的,同时官方的容器运行方式,相对小了好多 同时使用多阶段构建的方式运行dotnetcore 安装sdk 下载地址: https://dotnet.microsoft.com/download 选择版本下载并安装即可 简单demo 使用dotnetcore 命令创建的 创建简单demo mkdir app cd dotnet new mvc 生成发布文件 dotnet publish -c Release -o out 集成do…
Docker 的核心思想就是如何将应用整合到容器中,并且能在容器中实际运行. 将应用整合到容器中并且运行起来的这个过程,称为“容器化”(Containerizing),有时也叫作“Docker化”(Dockerizing). 容器是为应用而生的,具体来说,容器能够简化应用的构建.部署和运行过程. 完整的应用容器化过程主要分为以下几个步骤. 编写应用代码. 创建一个 Dockerfile,其中包括当前应用的描述.依赖以及该如何运行这个应用. 对该 Dockerfile 执行 docker imag…
本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊.推荐PHP开发者阅读.希望对大家有所帮助. 环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是 Docker 将开发环境和生产环境以轻量级方式打包,提供了一致的环境.极大的提升了开发部署一致性.当然,实际情况并没有这么简单,因为生产环境和开发环境的配置是完全不同的,比如日志等的问题都需要单独配置,但是至少比以前更加简单方便了,这里以 PHP 开…
前面我们聊了docker的基本概念.架构.镜像.网络.数据卷,回顾请参考https://www.cnblogs.com/qiuhom-1874/category/1766327.html:今天这篇博客主要是对前面博客中的常用命令做一个总结补充说明: 在前面的博客中我们说过docker是基于LXC之上封装来实现容器的,其核心就是利用内核的资源名称空间和Cgroup实现资源的管控和隔离:这里要补充一点的是docker容器把资源抽象成对象:作为客户端,docker这个命令其实就是在对这些抽象出来的资源…
原文链接:Docker 容器优雅终止方案 作为一名系统重启工程师(SRE),你可能经常需要重启容器,毕竟 Kubernetes 的优势就是快速弹性伸缩和故障恢复,遇到问题先重启容器再说,几秒钟即可恢复,实在不行再重启系统,这就是系统重启工程师的杀手锏.然而现实并没有理论上那么美好,某些容器需要花费 10s 左右才能停止,这是为啥?有以下几种可能性: 容器中的进程没有收到 SIGTERM 信号. 容器中的进程收到了信号,但忽略了. 容器中应用的关闭时间确实就是这么长. 对于第 3 种可能性我们无能…