- 创建Dockerfile
cd /home/docker/run
#如果路径不存在,则自己去创建
touch Dockerfile1
vim Dockerfile1
#内容如下
# FROM指定一个基础镜像, 一般情况下一个可用的 Dockerfile一定是 FROM 为第一个指令。
# 至于image则可以是任何合理存在的image镜像。
# FROM 一定是首个非注释指令 Dockerfile.
# FROM 可以在一个 Dockerfile 中出现多次,以便于创建混合的images。
# 如果没有指定 tag ,latest 将会被指定为要使用的基础镜像版本。
FROM ubuntu
# MAINTAINER 这里是用于指定镜像制作者的信息
# 你可以写上自己的ID,邮箱等
MAINTAINER duerhong
# RUN命令将在当前image中执行任意合法命令并提交执行结果。
# 命令执行提交后,就会自动执行Dockerfile中的下一个指令。
# 层级 RUN 指令和生成提交是符合Docker核心理念的做法。
# 它允许像版本控制那样,在任意一个点,对image 镜像进行定制化构建。
# RUN 指令缓存不会在下个命令执行时自动失效。
# 比如 RUN apt-get dist-upgrade -y 的缓存就可能被用于下一个指令.
# --no-cache 标志可以被用于强制取消缓存使用。
# 指定国内镜像,加快下载速度
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 更新库
RUN apt-get update
# 下载nginx
RUN apt-get install -y nginx
# 将当前目录下的index.html拷贝到 容器下
COPY index.html /var/www/html
#ENTRYPOINT 是指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件。
# 可以参考:[https://www.jianshu.com/p/690844302df5](https://www.jianshu.com/p/690844302df5)
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
# EXPOSE 指令指定在docker允许时指定的端口进行转发
EXPOSE 80
- 创建index.html
vim index.html
# 内容如下
<html>
<head>
<meta charset="utf-8" />
<title>docker测试中文版</title>
</head>
<body>
欢迎学习docker,这里是php菜鸟学院教程
</body>
</html>
- 生成镜像
docker build -t test-nginx1 -f Dockerfile1 .
- 运行容器
docker run -p 80:80 -d test-nginx1
#注意:如果有占用host主机80端口 可以另外指定其他端口或者关闭占用端口的程序
- 测试访问
curl http://localhost:80
也可以通过浏览访问
网友评论