TaterLi 个人博客

Docker 学习之路 – 定制镜像

这几天忙着去做别的事情,现在才来继续写...
我们先去控制台删除之前实验的docker (因为VPS空间太小了).

为了达到上次的目的,但是不要那么多垃圾文件.我们要用Dockerfile.这次新建一个空目录,放置一个Dockerfile.

FROM就是来自哪个母镜像,RUN就是运行什么东西,比如还可以RUN apt-get update之类的.可以建立很多条RUN.比如下面(但是不推荐)

FROM debian:jessie
RUN apt-get update
RUN apt-get install -y gcc libc6-dev make
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz"
RUN mkdir -p /usr/src/redis
RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1
RUN make -C /usr/src/redis
RUN make -C /usr/src/redis install

推荐做法其实是...

FROM debian:jessie
RUN buildDeps='gcc libc6-dev make' 
    && apt-get update 
    && apt-get install -y $buildDeps 
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" 
    && mkdir -p /usr/src/redis 
    && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 
    && make -C /usr/src/redis 
    && make -C /usr/src/redis install 
    && rm -rf /var/lib/apt/lists/* 
    && rm redis.tar.gz 
    && rm -r /usr/src/redis 
    && apt-get purge -y --auto-remove $buildDeps

好了,扯远了,看看怎么定制我们这个nginx包.(语法:docker build [选项] <上下文路径/URL/->)

docker build -t myweb:v1 .

启动下这个myweb看看.

docker run --name web -d -p 81:80 myweb:v1

观察下.

成功了~
但是,如果文件很多,一个一个RUN过去,这得到什么时候啊.对,还有COPY命令,but,这个COPY只能用相对路径.多了COPY操作再打包,看看.

当然启动看看.

docker run --name web -d -p 81:80 myweb:v2

我看用-it进去看看,文件去哪里了.

还有好多,什么ADD啊什么,简直晕啊.为了不要搞晕自己,还是先打住了.
 
 
 

退出移动版