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.5

MAINTAINER liang <[email protected]>
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 [email protected]

RUN 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.html

EXPOSE 80

CMD ["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/ 报404

docker 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/nginx


FROM alpine:latest

MAINTAINER liang "[email protected]"

ENV NGINX_VERSION_DATA 1.10.2 20220406

ENV NGINX_VERSION 1.10.2

RUN 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_temp

RUN 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 80


docker build -f Dockerfile-base -t 192.168.1.182:5000/nginx-download-base .


FROM 192.168.1.182:5000/nginx-download-base

MAINTAINER liang "[email protected]"

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.key

ENTRYPOINT ["/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

猜你喜欢

转载自blog.csdn.net/yinjl123456/article/details/129147800