天天看點

Docker系列教程08-Dockerfile實戰

原文: http://www.itmuch.com/docker/08-docker-dockerfile-in-action/

本節通過幾個例子,來工具Dockerfile的知識。

實戰1:使用Dockerfile修改Nginx首頁

建立一個Dockerfile,内容如下:

FROM nginx
RUN echo '<h1>Spring Cloud與Docker微服務實戰</h1>' > /usr/share/nginx/html/index.html
           

實戰2:使用Dockerfile在CentOS 7中安裝Nginx

盡管Docker Hub中已存在基于CentOS 7的鏡像,但仍可使用本例的内容學習、鞏固Dockerfile的相關知識。

基于CentOS 7鏡像,在其中安裝Nginx,并啟動。

提示:預設Nginx不在官方Yum倉庫中,需要先安裝RPMS倉庫包,這樣才能用Yum安裝Nginx。安裝RPMS包的指令如下:

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
           

答案

FROM centos:7
RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum -y install nginx
RUN sed -i '1i\daemon off;' /etc/nginx/nginx.conf
ENTRYPOINT nginx
           

實戰3:使用Dockerfile建構一個Spring Boot應用鏡像

有一個Java應用,在裸機中的啟動指令是

java -jar xxx.jar

,請将其制作成Docker鏡像,并啟動。

# 基于哪個鏡像
FROM java:8

# 将本地檔案夾挂載到目前容器
VOLUME /tmp

# 拷貝檔案到容器,也可以直接寫成ADD xxxxx.jar /app.jar
ADD xxxxx.jar app.jar /app.jar'

# 聲明需要暴露的端口
EXPOSE 8761

# 配置容器啟動後執行的指令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
           

鞏固:閱讀常用軟體的Dockerfile