> 文章列表 > docker Alpine一个只有5M小而美的Docker镜像

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

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

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