dockerfile
基于dockerfile创建镜像
使用docker build命令来创建新的docker镜像
1, 创建Dockerfile文件,然后进行编辑
From python
Cmd python -m http.server
FROM 是指定基础镜像,它必须是第一条指令。这里使用python作为基础镜像。
Cmd 表示镜像作为容器运行时运行的程序命令。 这里是启动了一个python的http.server模块。
2, build
docker build -t zhang:1.0 . # 基于当前目录的Dockfile来创建镜像,镜像名称为zhang:v1
-t 表示给镜像命名
3, 运行容器进行验证
docker run -p 8000:8000 -it –rm zhang:v1
-p 端口进行映射, -it交互式模式, –rm 当容器结束后自动删除容器。
然后通过浏览器访问容器所在主机的8000端口,我这里地址为http://192.168.56.131:8000这样可以查看容器内的所有文件, 这个功能是由python的http.server模块提供的。
端口映射是通过iptables的DNAT来实现的,写入的规则为
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 8000 -j DNAT --to-destination 172.17.0.3:8000
我们可以知道容器的内部IP为 172.17.0.3 , 通过docker exec -it 232d2ccf4ec9 /bin/bash命令进入 到docker查看,确实是172.17.0.3
在 Dockerfile 中使用 ENV 指令设置环境变量
环境变量设置格式有两种 :
ENV key1 value1
ENV key1=value1 key2=value2
示例如下
ENV GOPROXY https://goproxy.cn