- 基于Dockerfile创建镜像
写好dockerfile
在dockerfile目录下
docker build -t recall_service:vt1 .
创建好的镜像名字叫recall_service,tag为vt1
docker images 可以查看创建好的镜像
启动镜像
docker run --cap-add=SYS_PTRACE --network host -uroot -itd --name test2 recall_service:vt1 /bin/bash - 基于运行中docker环境创建新的镜像
进入test2
docker exec -it test2 /bin/bash
修改镜像内容
vim /path/container_init.sh
vim /path/container_start.sh
退出容器
提交新image
docker commit -m="test" -a="guoxiong" test2 recall_service:vt2
启动新镜像
docker run --cap-add=SYS_PTRACE --network host -uroot -itd --name ha recall_service:vt2 -d 1718 -m 10.30.6.59
进入新镜像
docker exec -it ha bin/bash
3.Docker 启动后会执行Dockerfile
ENTRYPOINT ["/bin/bash","/container_start.sh"]
CMD和ENTRYPOINT都是执行命令用的,不同的就是ENTRYPOINT可以带参数进去,比如上面我启动docker时带了两个参数 -d 1718 -m 10.30.6.59,在container_start.sh中就可以接收这两个参数
while getopts :d:m: opt; do
case ${opt} in
d) DOMAIN="$OPTARG" ;;
m) material_ip="$OPTARG" ;;
*)
echo "未知参数 $OPTARG"
exit 255
;;
esac
done
这样就ok