需求:
通过dockerfile,构建nginx镜像,且运行容器后,生成的页面,是“小白菜玩转docker”。
1.创建Dockerfile文件:
vim Dockerfile
2.编写Dockerfile脚本:
FROM nginx
RUN echo 'hello dockerfile!'
3.编译脚本:
docker build .
4.通过docker images查看到新的镜像
5.修改镜像名称:
docker tag 5f4531f9023e my_nginx
6.运行新镜像
docker run -d -p 80:80 my_nginx
dockerfile常用命令
COPY
复制文件的命令
ADD
复制文件的命令,与COPY不同的是,ADD自动解压
CMD
运行容器时会默认执行的命令
CMD [参数1,参数2]
CMD ["cat","/www/index.html"] == docker run 容器id cat /www/index.html
FROM
指定基础镜像
MAINTAINER
维护者,作者
RUN
想让容器干啥,就在命令前面加上RUN就可以了。
WORKDIR
相当于cd,设置到前工作目录
VOLUME
设置卷,挂载主机目录 容器在运行时,应该保证在存储层不写入任何数据,运行在容器内产生的数据,我们推荐是挂载,写入到宿主机上,进行维护。
EXPOSE
指定对外端口
ENV
环境变量
ENTRYPOINT
容器启动后执行的命令
CMD 和 ENTRYPOINT的区别
docker run 镜像id ping www.baidu.com
上面这句命令,如果是CMD的话 ping www.baidu.com 会覆盖CMD的命令
如果是 ENTRYPOINT的话, ping www.baidu.com 不会覆盖ENTYpoint的命令