这期我们来学习如何通过编写dockerfile文件自创docker镜像
第一个简单的Dockerfile
FROM alpine:latest
MAINTAINER RyanLoi
CMD echo 'hollo docker'
MAINTAINER指令在Dockerfile中已经被弃用。在Docker 1.13版本之后,MAINTAINER指令已被LABEL指令所取代,用于为镜像添加维护者信息。
之前可以使用
MAINTAINER YourName <your.email@example.com>
更新后的Dockerfile片段:
LABEL maintainer="YourName <your.email@example.com>"
创建以下Dockerfile后
FROM alpine:latest
LABEL maintainer="RyanLoi"
CMD echo 'hollo docker'
通过Dockerfile build一个自定义名字的镜像(image)
docker build -t test_docker
docker image
就可以看到构建的镜像(image)
然后docker run test_docker
就可以运行新构建的镜像(image)
第二个Dockerfile
FROM nginx:1.20.2 #使用nginx的1.20.2镜像 也可以使用latest 是最新的
LABEL maintainer="RyanLoi"
COPY index.html /usr/share/nginx/html/ #Dockerfile文件要有一个index.html文件 复制这个文件到nginx运行目录下面
EXPOSE 80
简单解析下上面的代码
使用docker build构建image 如果文件名不是默认的Docker 可以使用-f 指定文件名 我这里使用的是Dockerfile2 最后的.是路径
docker build -t hello_docker -f Dockerfile2 .
通过镜像运行容器 --name
是给容器命名
docker run -p 8080:80 --name ryanloi_container -d hello_docker
这个时候访问localhost:8080就可以打开刚自定义的index.html啦
关于Dockerfile的命令
命令 | 用途 |
---|---|
FROM | baes image |
RUN | 执行命令 |
ADD | 添加文件 |
COPY | 拷贝文件 |
CMD | 执行命令 |
EXPOSE | 暴露端口 |
WORKDIR | 指定路径 |
LABEL key=value | 添加元数据到镜像 |
ENV | 设定环境变量 |
ENTRYPOINT | 容器入口 |
USER | 指定用户 |
VOLUME | mount point |