Skip to content

一些Docker File, 基于alpine的微容器

Notifications You must be signed in to change notification settings

liangzhiyuan2015/micro-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Micro Dockers

介绍

自己做的一些Dockerfile.

每个都有详细的介绍, 如果不详细, 那就说明容器很简单..

基于 alpine 系统的微容器.

Dcokerfile 基本结构

Dockerfile的四部分

  • 基础镜像信息
  • 维护者信息
  • 镜像操作指令
  • 容器启动指令

基础镜像信息

  • FROM ubuntu
  • FROM alpine
  • FROM nginx

维护者信息

MAINTAINER wrfly [email protected]

镜像操作指令

RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /et
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

容器启动指令

CMD /usr/sbin/nginx
CMD ["nginx", "-g", "daemon off;"]

其他指令

  1. EXPOSE

EXPOSE <port> [<port>...]

容器暴露的端口, 启动时要指定 -P 自动给容器分配端口, 或者 -p aaa:bbb 手动分配端口

  1. ENV
ENV PG_MAJOR 9.3
ENV PG_VERSION 9.3.4
ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH

指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持。

  1. ADD

ADD <src> <dest>

复制源目录到容器中的目录, 源目录是dockerfile的相对路径, 也可以是URL或者一个tar文件.

  1. COPY

COPY <src> <dest>

ADD差不多, 不过只能复制相对路径, 推荐使用COPY.

  1. ENTRYPOINT

两种格式:

  • ENTRYPOINT ["executable", "param1", "param2"]
  • ENTRYPOINT command param1 param2

配置容器启动后执行的命令, 并且不会被docker run提供的参数覆盖. 如果有多个ENTRPOINT, 只有最后一个生效.

  1. VOLUME

VOLUME ["/date"]

挂载数据卷.

  1. USER

USER wrfly

指定容器启动时默认的用户名.

  1. WORKDIR

WORKDIR /path/to/workdir

为后续指令提供工作目录(默认目录).

可以理解为cd到这个目录中, 然后后面的指令都是基于这个目录的.

可以使用多个WORKDIR, 比如:

WORKDIR /a
WORKDIR b
WORKDIR c

那么当前的目录则为/a/b/c

  1. ONBUILD

ONBUILD [INSTRUCTION]

如果一个镜像的dockerfile中含有这个指令, 则基于这个镜像创建新的镜像的时候,都会执行指令后的内容.

alpine 基本指令

项目主页:https://github.com/gliderlabs/docker-alpine

介绍: http://gliderlabs.viewdocs.io/docker-alpine/

用法: http://gliderlabs.viewdocs.io/docker-alpine/usage/

安装软件: apk add -update nginx

Dockerfile Example

FROM gliderlabs/alpine:3.3

RUN apk add --update \
    python \
    python-dev \
    py-pip \
    build-base \
  && pip install virtualenv \
  && rm -rf /var/cache/apk/*

WORKDIR /app

ONBUILD COPY . /app
ONBUILD RUN virtualenv /env && /env/bin/pip install -r /app/requirements.txt

EXPOSE 8080
CMD ["/env/bin/python", "main.py"]

About

一些Docker File, 基于alpine的微容器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 88.7%
  • Dockerfile 8.6%
  • Shell 2.1%
  • Hack 0.6%