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
docker Alpine一个只有5M小而美的Docker镜像相关推荐
- Docker从入门到放弃-----Dockerfile常用命令解析与实战(使用docker制作一个开箱即用的consul镜像)
前言 在上一篇文章docker常用命令的实践与解析中,我们提到了可以使用commit命令来在本地创建镜像,但是commit创建的镜像其实是不够正规的,第三方无法了解镜像创建的过程,所以只能作为我们在本 ...
- docker 主进程 日志_[docker]从一个实例,一窥docker进程管理
在Docker中,进程管理的基础是Linux内核的PID命名空间技术.在不同的PID命名空间下,可以有相同的PID. Linux内核为所有的PID命名空间维护了一个树状的数据结构,最顶层是系统初始化时 ...
- 主进程退出后子进程还会存在吗?_[docker]从一个实例,一窥docker进程管理
在Docker中,进程管理的基础是Linux内核的PID命名空间技术.在不同的PID命名空间下,可以有相同的PID. Linux内核为所有的PID命名空间维护了一个树状的数据结构,最顶层是系统初始化时 ...
- 【环境配置】使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 的镜像
文章目录 使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 镜像的过程 1. 我的笔记本环境: 2. 环境配置过程 2.1. 在 ubuntu 16.04 中 ...
- docker 查看容器磁盘大小_软件安全 : Docker逃逸详解
前言 在虚拟化技术日益成熟的今天,Docker作为必须使用的一项服务,它的安全性尤为重要.今天,我们来一起学习Docker最大的安全威胁--逃逸技术. Docker是什么 Docker 是一个开源的应 ...
- Alpine Linux 配置使用技巧,docker的基本使用以及docker in docker、docker run docker
Alpine Linux 配置使用技巧,docker的基本使用以及docker in docker.docker run docker. 最后把基于Linux系统实现的 docker in docke ...
- 使用 Docker 制作一个盒装部落格
先玩起来 Play with Docker 官方提供的 Playground,进去点击 Start,然后 +ADD NEW INSTANCE 即可开玩. 上来直接 run docker run -it ...
- 还不懂Docker?一个故事安排的明明白白!
程序员受苦久矣 多年前的一个夜晚,风雨大作,一个名叫Docker的年轻人来到Linux帝国拜见帝国的长老. "Linux长老,天下程序员苦于应用部署久矣,我要改变这一现状,希望长老你能帮帮我 ...
- docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用
几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...
最新文章
- 汇编语言程序设计 实验九
- 用Visual C#创建Windows服务程序
- 将mcomaster配置以apache运行
- UEStudio使用技巧三则
- boost::coroutine2模块实现相同的边缘的测试程序
- python调用其它文件函数或类
- 编译linux源码,linux源码树编译
- Excel条件格式化(conditional formatting)应用
- LeetCode(892)——三维形体的表面积(JavaScript)
- android home 销毁 activity,android 触发home之后activity销毁问题
- pypy mysql 兼容_PyPy运行Django+MySQL简单教程
- 变压器的分类_变压器的作用
- 关于一次性通过CISSP考试的一点经验分享
- C语言中对程序设计的理解,浅论《C语言程序设计》的学习方法
- 2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解
- win10 android模拟器 菜单,Win10 Android模拟器教程
- Java中巧算年龄的代码,巧算年龄 - 寂寞暴走伤的个人空间 - OSCHINA - 中文开源技术交流社区...
- fractional cascading
- python计算复数的辐角_python做傅里叶变换
- 信捷原创程序,8个伺服轴。 PLC:信捷XDM-60T10 HMI:信捷TG765 总体I/O在200个点之内