通過 docker images 獲取 Dockerfile


通過docker image 獲取到 dockerfile

docker history --format {{.CreatedBy}} --no-trunc=true $DockerImage |sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" | tac

--format {{.CeratedBy}} 只輸出 CREATE BY 這一列
--no-trunc=true 完成輸出命令
sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" 替換命令執行的bash前綴
tac 由於history中的命令是層級的,越晚運行的命令越在上面,為了更方便的閱讀,使用tac命令讓其翻轉

cat > Obtain_dockerfile.sh <<-'EOF'
#!/bin/bash
export PATH=$PATH
if [ $# -eq 1 ];then
		docker history --format {{.CreatedBy}} --no-trunc=true $1 |sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" | tac
	else
		echo "sh Obtain_dockerfile.sh $DOCKER_IMAGE"
fi
EOF


免責聲明!

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



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