什麼是Dockerfile?
按照平時,我們都需要先讓一個容器跑起來,然後進去搭建制定自己的服務,那有沒有更簡潔的方法呢?Dockerfile就是為了更友善的制定容器的。
首先先看Dockerfile裡的一些定義,這裡從網上截了個圖,比較形象:
<a href="http://s2.51cto.com/wyfs02/M00/88/8B/wKiom1f7Og2iGewnAAhboF5jp34117.png-wh_500x0-wm_3-wmp_4-s_3181596818.png" target="_blank"></a>
建立目錄:
<a href="http://s3.51cto.com/wyfs02/M02/88/8B/wKiom1f7OoSSLb3gAAAKco1ylcA845.png-wh_500x0-wm_3-wmp_4-s_3306605803.png" target="_blank"></a>
要先把需要的軟體包放在同一個目錄下
<a href="http://s3.51cto.com/wyfs02/M02/88/88/wKioL1f7OoShK3FyAAAX-fqF6F4655.png-wh_500x0-wm_3-wmp_4-s_1424269954.png" target="_blank"></a>
編寫Dockerfile,這裡要特别提醒,Dockerfile編寫需要非常注意空格!!!
vim Dockerfile
添加:
# This is My first Dockerfile
# Version 1.0
# Author: syk
#Base images
FROM centos
#MAINTAINER
MAINTAINER yongkang.shi
#ADD
ADD pcre-8.38.tar.gz /usr/local/src
ADD nginx-1.8.1.tar.gz /usr/local/src
#RUN
RUN yum install -y wget gcc gcc-c++ make openssl-devel
RUN useradd -s /sbin/nologin -M www
#WORKDIR
WORKDIR /usr/local/src/nginx-1.8.1
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.38 && make && make install
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
ENV PATH /usr/local/nginx/sbin:$PATH
#EXPOSE
EXPOSE 80
#CMD
CMD ["nginx"]
運作指令建立容器:
docker build -t nginx-file:v2 /opt/docker-file/nginx/
<a href="http://s1.51cto.com/wyfs02/M01/88/8B/wKiom1f7OzuDQuJmAAA8g_FLntY933.png-wh_500x0-wm_3-wmp_4-s_1296897509.png" target="_blank"></a>
最後會提示建構成功:
<a href="http://s1.51cto.com/wyfs02/M01/88/8B/wKiom1f7OzzzCPjvAAAT0LWjyh4559.png-wh_500x0-wm_3-wmp_4-s_11085449.png" target="_blank"></a>
docker ps -a檢視一下:
<a href="http://s3.51cto.com/wyfs02/M00/88/88/wKioL1f7Ozyhnn7mAAAkSY8Rk1M346.png-wh_500x0-wm_3-wmp_4-s_1970865373.png" target="_blank"></a>
本文轉自 sykmiao 51CTO部落格,原文連結:http://blog.51cto.com/syklinux/1860231,如需轉載請自行聯系原作者