- 基于Dockerfile創(chuàng)建鏡像
寫好dockerfile
在dockerfile目錄下
docker build -t recall_service:vt1 .
創(chuàng)建好的鏡像名字叫recall_service爪膊,tag為vt1
docker images 可以查看創(chuàng)建好的鏡像
啟動(dòng)鏡像
docker run --cap-add=SYS_PTRACE --network host -uroot -itd --name test2 recall_service:vt1 /bin/bash - 基于運(yùn)行中docker環(huán)境創(chuàng)建新的鏡像
進(jìn)入test2
docker exec -it test2 /bin/bash
修改鏡像內(nèi)容
vim /path/container_init.sh
vim /path/container_start.sh
退出容器
提交新image
docker commit -m="test" -a="guoxiong" test2 recall_service:vt2
啟動(dòng)新鏡像
docker run --cap-add=SYS_PTRACE --network host -uroot -itd --name ha recall_service:vt2 -d 1718 -m 10.30.6.59
進(jìn)入新鏡像
docker exec -it ha bin/bash
3.Docker 啟動(dòng)后會(huì)執(zhí)行Dockerfile
ENTRYPOINT ["/bin/bash","/container_start.sh"]
CMD和ENTRYPOINT都是執(zhí)行命令用的钩骇,不同的就是ENTRYPOINT可以帶參數(shù)進(jìn)去辰妙,比如上面我啟動(dòng)docker時(shí)帶了兩個(gè)參數(shù) -d 1718 -m 10.30.6.59个粱,在container_start.sh中就可以接收這兩個(gè)參數(shù)
while getopts :d:m: opt; do
case ${opt} in
d) DOMAIN="$OPTARG" ;;
m) material_ip="$OPTARG" ;;
*)
echo "未知參數(shù) $OPTARG"
exit 255
;;
esac
done
這樣就ok