Dockerfile創建鏡像 – Dockerfile示例安裝nginx
先下載nginx的配置文件到當前目錄下 wget http://www.apelearn.com/study_v2/.nginx_conf
vim Dockerfile //內容如下
#############################################################
# Dockerfile to build Nginx Installed Containers
# Based on CentOS
#############################################################
#Set the base image to CentOS
FROM centos #基於docker images的一個centos鏡像。
#File Author / Maintainer
MAINTAINER wyp [email protected] #作者信息
#Install necessary tools #下列包,也可寫在一行。
RUN yum install -y pcre-devel wget net-tools gcc
RUN yum install -y zlib zlib-devel make
RUN yum install -y openssl-devel
# Install Nginx
ADD http://nginx.org/download/nginx-1.8.0.tar.gz . #.意思爲,下載源碼到當前目錄下
RUN tar zxvf nginx-1.8.0.tar.gz
RUN mkdir -p /usr/local/nginx
RUN cd nginx-1.8.0.tar.gz && ./configure --prefix=/usr/local/nginx && make && make install
RUN rm -f /usr/local/nginx/conf/nginx.conf #刪除舊配置文件
COPY .nginx_conf /usr/local/nginx/conf/nginx.conf #複製下載的配置到目的路徑
# Expose ports #暴露80端口,因爲做的是web服務器
EXPOSE 80
# Set the default command to execute
# when creating a new container
ENTRYPOINT /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
創建鏡像:
docker build -t centos_nginx . #指定鏡像名稱,後面的.指的是生成的鏡像在當前目錄下
執行後,可以看到執行的每一個步驟。
docker images 可以看到我們新建的鏡像
進入容器
docker run -itd -P centos_nginx bash #-P可以把容器80端口隨機映射到宿主機一個端口上。
docker exec -it 容器ID bash #進入容器,但是還沒有啓動nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #啓動nginx
curl localhost 驗證容器web是否正常
退出容器,curl localhost:端口 驗證容器web是否正常,隨機的端口可以docker ps查看