基於Dockerfile創建docker鏡像


0、先創建一個文件夾img

mkdir img

  

1、Linux上新建3個文件

2、文件內容分別寫入

(1)Dockerfile中

# 基於的基礎鏡像centos
FROM centos
# 維護該鏡像的用戶信息
MAINTAINER The CentOS Project<cloud-ops@centos.org>
# 鏡像中的操作指令:安裝apache軟件包
RUN yum -y update
RUN yum -y install httpd
# 開啟鏡像中的80端口
EXPOSE 80
# 復制網址首頁文件
ADD index.html /var/www/html/index.html
# 將執行腳本復制到鏡像中
ADD run.sh /run.sh
RUN chmod 775 /run.sh
# 啟動容器時執行腳本
CMD ["/run.sh"]

  

(2)index.html中

web test

  

(3)run.sh中

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

說明:

rm -rf /run/httpd/*     清理httpd的緩存
exec /usr/sbin/apachectl -D FOREGROUND          啟動apache服務

3、使用Dockerfile生成鏡像

docker build -t httpd:centos .

 

-t  指定鏡像標簽

后面就會使用剛才編寫的Dockerfile自動創建生成鏡像。

可以看到整個創建過程中,每運行一次Dockerfile中的指令,都會給初始鏡像加上新的一層。

 

4、使用新的鏡像運行容器

docker run -dit -p 49180:80 httpd:centos

  

運行此命令前:先檢查

(1)docker images  新建鏡像是否存在

(2)netstat -an |grep 49180     宿主機中端口49180是否被占用,如果端口被占用就換一個端口號

注意:80端口是容器中的端口,不用管

 

運行此命令后:檢查

docker  ps -a

看看該容器是否在運行(up)

 

5、防火牆開放宿主機的端口49180

firewall-cmd --zone=public --list-ports 
firewall-cmd --zone=public --add-port=49180/tcp --permanent 
firewall-cmd --reload 

  

6、瀏覽器訪問

ip:49180

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM