docker Alpine一个只有5M小而美的Docker镜像

参考链接:
Alpine 一个只有5M的Docker镜像
http://www.infoq.com/cn/news/2016/01/Alpine-Linux-5M-Docker?utm_source=tuicool&utm_medium=referral

使用alpinelinux 构建 golang http 启动了才15mb
http://blog.csdn.net/freewebsys/article/details/53635529
http://blog.csdn.net/freewebsys

Alpine命令
https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management

alpine里安装bash
https://github.com/yikaus/docker-alpine-bash

docker pull yikaus/alpine-bash
docker run --rm -ti yikaus/alpine-bash /bin/bash

自己编译镜像

cat Dockerfile
FROM alpine:3.5MAINTAINER liang <liang@gmail.com>
RUN apk add --update bash && rm -rf /var/cache/apk/*编译成镜像
docker build  -t alpinebash .docker run --rm -ti alpinebash /bin/bash 进入bash

Alpine镜像安装nginx

参加链接:
http://www.cnblogs.com/ee900222/p/docker_3.html
https://github.com/smebberson/docker-alpine/blob/master/alpine-nginx/Dockerfile

FROM alpine:latest
MAINTAINER liang liang@gmail.comRUN mkdir /run/nginx && mkdir /data
# install nginx
RUN apk --update add nginx && apk add --update bash && rm -rf /var/cache/apk/*
ADD nginx.conf /etc/nginx/nginx.conf
ADD index.html /data/index.htmlEXPOSE 80CMD ["nginx", "-g", "daemon off;"]编译镜像
docker build -f Dockerfile -t alpinenginx .
运行
docker run --name=anginx -d -p 8088:80 alpinenginx开放8088端口防火墙
访问:http://192.168.1.181:8088/ 报404docker exec -ti anginx /bin/bash 进入bash里查看nginx配置
docker cp anginx:/etc/nginx/nginx.conf nginx.conf
增加配置
server{listen       80;server_name localhost;location /{root  /data;index index.html index.htm index.php default.html default.htm default.php;}}
注释这个
#include /etc/nginx/conf.d/*.conf;

编译镜像时增加nginx.conf 和一个index.html文件
访问:http://192.168.1.181:8088/

自己编译nginx基础镜像

nginx官方 alpine Docker镜像
https://github.com/nginxinc/docker-nginx/blob/014e624239987a0a46bee5b44088a8c5150bf0bb/stable/alpine/Dockerfile

docker build -f Dockerfile3 -t alpinenginx3 .
docker run -d -p 8088:80 -p 444:443 --name="nginx" alpinenginx5 /data/apps/nginx-download/sbin/nginxFROM alpine:latestMAINTAINER liang "liang@gmail.com"ENV NGINX_VERSION_DATA 1.10.2 20220406ENV NGINX_VERSION 1.10.2RUN mkdir -p /data/apps/nginx-download && mkdir -p /data/logs/nginx-download && mkdir -p /data/temps/nginx-download && mkdir -p /data/temps/nginx-download/client_body_tempRUN GPG_KEYS=B0F4253373F8F6F510D42178520A9993A1C052F8 \&& CONFIG="\--prefix=/data/apps/nginx-download \--pid-path=/data/logs/nginx-download/nginx.pid \--lock-path=/data/apps/nginx-download/nginx.lock \--error-log-path=/data/logs/nginx-download/error.log \--http-log-path=/data/logs/nginx-download/access.log \--http-client-body-temp-path=/data/temps/nginx-download/client_body_temp \--http-proxy-temp-path=/data/temps/nginx-download/proxy_temp \--http-fastcgi-temp-path=/data/temps/nginx-download/fastcgi_temp \--http-uwsgi-temp-path=/data/temps/nginx-download/uwsgi_temp \--http-scgi-temp-path=/data/temps/nginx-download/scgi_temp \--user=nginx \--group=nginx \--with-http_stub_status_module \--with-http_realip_module \--with-http_ssl_module \" \&& addgroup -S nginx \&& adduser -D -S -h /var/cache/nginx -s /sbin/nologin -G nginx nginx \&& apk add --no-cache --virtual .build-deps gcc libc-dev make openssl-dev pcre-dev zlib-dev linux-headers curl gnupg libxslt-dev gd-dev geoip-dev perl-dev \&& curl -fSL http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz -o nginx.tar.gz \&& curl -fSL http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz.asc  -o nginx.tar.gz.asc \&& export GNUPGHOME="$(mktemp -d)" \&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEYS" \&& gpg --batch --verify nginx.tar.gz.asc nginx.tar.gz \&& rm -r "$GNUPGHOME" nginx.tar.gz.asc \&& tar -zxC /data/apps/nginx-download -f nginx.tar.gz \&& rm nginx.tar.gz \&& cd /data/apps/nginx-download/nginx-$NGINX_VERSION \&& ./configure $CONFIG --with-debug \&& make -j$(getconf _NPROCESSORS_ONLN) \&& mv objs/nginx objs/nginx-debug \&& ./configure $CONFIG \&& make -j$(getconf _NPROCESSORS_ONLN) \&& make install \&& strip /data/apps/nginx-download/sbin/nginx* \&& apk del .build-deps gcc libc-dev make openssl-dev pcre-dev zlib-dev linux-headers curl \&& rm -rf /var/cache/apk/*EXPOSE 443 80docker build -f Dockerfile-base -t 192.168.1.182:5000/nginx-download-base .FROM 192.168.1.182:5000/nginx-download-baseMAINTAINER liang "liang@gmail.com"ADD /conf/nginx-debug.conf /data/apps/nginx-download/conf/nginx.conf
ADD /liang.crt /data/apps/nginx-download/liang.crt
ADD /liang.key /data/apps/nginx-download/liang.keyENTRYPOINT ["/data/apps/nginx-download/sbin/nginx"]docker build -f Dockerfile-debug -t 192.168.1.182:5000/nginx-download-debug .docker run -d -p 80:80 -p 443:443 --name="nginx-download-debug" -v `pwd`/logs:/data/logs/nginx-download 192.168.1.182:5000/nginx-download-debug:alpine

docker Alpine一个只有5M小而美的Docker镜像相关推荐

  1. Docker从入门到放弃-----Dockerfile常用命令解析与实战(使用docker制作一个开箱即用的consul镜像)

    前言 在上一篇文章docker常用命令的实践与解析中,我们提到了可以使用commit命令来在本地创建镜像,但是commit创建的镜像其实是不够正规的,第三方无法了解镜像创建的过程,所以只能作为我们在本 ...

  2. docker 主进程 日志_[docker]从一个实例,一窥docker进程管理

    在Docker中,进程管理的基础是Linux内核的PID命名空间技术.在不同的PID命名空间下,可以有相同的PID. Linux内核为所有的PID命名空间维护了一个树状的数据结构,最顶层是系统初始化时 ...

  3. 主进程退出后子进程还会存在吗?_[docker]从一个实例,一窥docker进程管理

    在Docker中,进程管理的基础是Linux内核的PID命名空间技术.在不同的PID命名空间下,可以有相同的PID. Linux内核为所有的PID命名空间维护了一个树状的数据结构,最顶层是系统初始化时 ...

  4. 【环境配置】使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 的镜像

    文章目录 使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 镜像的过程 1. 我的笔记本环境: 2. 环境配置过程 2.1. 在 ubuntu 16.04 中 ...

  5. docker 查看容器磁盘大小_软件安全 : Docker逃逸详解

    前言 在虚拟化技术日益成熟的今天,Docker作为必须使用的一项服务,它的安全性尤为重要.今天,我们来一起学习Docker最大的安全威胁--逃逸技术. Docker是什么 Docker 是一个开源的应 ...

  6. Alpine Linux 配置使用技巧,docker的基本使用以及docker in docker、docker run docker

    Alpine Linux 配置使用技巧,docker的基本使用以及docker in docker.docker run docker. 最后把基于Linux系统实现的 docker in docke ...

  7. 使用 Docker 制作一个盒装部落格

    先玩起来 Play with Docker 官方提供的 Playground,进去点击 Start,然后 +ADD NEW INSTANCE 即可开玩. 上来直接 run docker run -it ...

  8. 还不懂Docker?一个故事安排的明明白白!

    程序员受苦久矣 多年前的一个夜晚,风雨大作,一个名叫Docker的年轻人来到Linux帝国拜见帝国的长老. "Linux长老,天下程序员苦于应用部署久矣,我要改变这一现状,希望长老你能帮帮我 ...

  9. docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用

    几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...

最新文章

  1. 汇编语言程序设计 实验九
  2. 用Visual C#创建Windows服务程序
  3. 将mcomaster配置以apache运行
  4. UEStudio使用技巧三则
  5. boost::coroutine2模块实现相同的边缘的测试程序
  6. python调用其它文件函数或类
  7. 编译linux源码,linux源码树编译
  8. Excel条件格式化(conditional formatting)应用
  9. LeetCode(892)——三维形体的表面积(JavaScript)
  10. android home 销毁 activity,android 触发home之后activity销毁问题
  11. pypy mysql 兼容_PyPy运行Django+MySQL简单教程
  12. 变压器的分类_变压器的作用
  13. 关于一次性通过CISSP考试的一点经验分享
  14. C语言中对程序设计的理解,浅论《C语言程序设计》的学习方法
  15. 2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解
  16. win10 android模拟器 菜单,Win10 Android模拟器教程
  17. Java中巧算年龄的代码,巧算年龄 - 寂寞暴走伤的个人空间 - OSCHINA - 中文开源技术交流社区...
  18. fractional cascading
  19. python计算复数的辐角_python做傅里叶变换
  20. 信捷原创程序,8个伺服轴。 PLC:信捷XDM-60T10 HMI:信捷TG765 总体I/O在200个点之内

热门文章

  1. 美国精神的象征,就是美国队长,三维模型来了
  2. 俄罗斯国家黑客被指在2017年攻陷荷兰警方系统
  3. mysql 计算中位数_【转】MySQL如何计算中位数
  4. 字节跳动小程序担保支付请求签名算法-Java实现
  5. 南卡电容笔和绿联哪款更好用?性价比高的电容笔推荐
  6. 中国整体卫浴行业竞争格局分析及未来远景目标建议报告2022-2027年版
  7. 浅析:选择WMS仓库管理系统的误区
  8. Remote Desktop安卓软件实现手机远程控制电脑
  9. python接口自动化:自动获取cookie
  10. 测试边界值(上点、内点、离点)