标签:-name test uil pos 容器 oca 构建 index doc
# 使用哪个镜像为基础
FROM nginx
# 安装apt-get后清理垃圾文件
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
# 复制文件
COPY index.html /usr/share/nginx/html/index.html
# 声明这个容器对外使用的端口
EXPOSE 80 443
# 开启健康检查
HEALTHCHECK --interval=5s --timeout=3s CMD curl -fs http://localhost/ || exit 1
# 添加作者信息(键值对)
LABEL maintainer="liuyalong"
LABEL documentation="https://baidu.com"
build的时候,会忽略的文件,不会copy到镜像中
.git/
node_modules/
*.bak
test*/
test*
使用docker build -t mynginx:v1 .
创建镜像
-t name:tag
给这个镜像打个标签xxx.
最后有个点,指定镜像的上下文为当前的目录路径,相当于指定了根目录路径,在Dockerfile
中的路径就以此路径为根路径使用docker images
查看所有镜像
使用docker inspect imageidxxxx
可以查看到镜像的详细信息
使用docker run -itd -p 80:80 --name mynginx mynginx:v1
用刚才做的镜像启动一个容器,并命名为mynginx,端口映射为80
使用docker container ls
查看所有启动的容器
使用docker rm xxx
删除容器
使用docker rmi xxx
删除镜像,必须先停止容器才可以删除
docker build
默认找名字为Dockerfile
的文件,忽略文件找.dockerignore
FROM
的镜像选最小的Dockerfile
中每一个指令都会建立一层,在其上执行这些命令,执行结束后,commit
这一层的修改RUN
执行多个命令用&&连接,应保证层级最少,把不经常变化的层级放到最前面,这样可以最大程度使用镜像缓存,因为当某一层改变后,之后的几层就需要重新在这层的基础上构建.EXPOSE
只是声明使用哪些端口,具体使用不受这个影响,通过-p
命令指定内外端口RUN
命令是在打包成镜像的时候就执行了CMD
和ENTRYPOINT
区别可以看这个文章标签:-name test uil pos 容器 oca 构建 index doc
原文地址:https://www.cnblogs.com/lyalong/p/14299299.html