欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 【分布式微服务云原生】Dockerfile命令详解

【分布式微服务云原生】Dockerfile命令详解

2024/12/1 0:31:39 来源:https://blog.csdn.net/u010425839/article/details/142580740  浏览:    关键词:【分布式微服务云原生】Dockerfile命令详解

Dockerfile 是一个文本文件,它包含了一系列的指令,用于构建一个 Docker 镜像。下面是 Dockerfile 中常用命令的详细解释和示例。

1. 获取镜像的三种方式

通过命令拉取镜像

docker pull 镜像名称

从镜像仓库拉取指定的镜像。

通过容器创建镜像

docker commit 容器id 镜像名称

从已存在的容器创建一个新的镜像。

通过Dockerfile构建镜像
编写 Dockerfile 文件来自定义和构建镜像。

流程图:获取镜像的三种方式

开始
docker pull 镜像名称
从仓库拉取镜像
开始
docker commit 容器id 镜像名称
从容器创建镜像
开始
编写Dockerfile
构建自定义镜像
2. Dockerfile基础指令

FROM
定义基础镜像信息。

FROM nginx

MAINTAINER
作者维护者信息。

MAINTAINER 作者名 <邮箱>

RUN
运行Linux命令,制作镜像操作指令。

RUN echo '<meta charset=utf8>佳哥带你用docker运行nginx服务' > /usr/share/nginx/html/index.html

ADD
添加文件到容器内,支持自动解压和远程文件下载。

ADD 文件路径 /容器内路径

COPY
复制本地文件到容器内,不自动解压。

COPY 文件路径 /容器内路径

WORKDIR
设置工作目录。

WORKDIR /etc/mysql

USER
切换执行用户。

USER root
USER test

VOLUME
定义挂载卷。

VOLUME /data

EXPOSE
指定对外的端口。

EXPOSE 80

CMD
指定容器启动时要执行的命令。

CMD ["nginx", "-g", "daemon off;"]

ENTRYPOINT
指定容器启动时要执行的程序及参数。

ENTRYPOINT ["nginx", "-g", "daemon off;"]

ENV
设置环境变量。

ENV NAME value

ARG
构建时设置变量。

ARG NAME=value

流程图:Dockerfile基础指令

FROM
定义基础镜像
MAINTAINER
定义维护者信息
RUN
执行命令
ADD
添加文件/目录
COPY
复制文件/目录
WORKDIR
设置工作目录
USER
切换用户
VOLUME
定义挂载卷
EXPOSE
暴露端口
CMD
指定启动命令
ENTRYPOINT
指定启动程序
ENV
设置环境变量
ARG
构建时设置变量
3. Dockerfile构建示例

构建Docker镜像

docker build --no-cache -t 'jiage3122/my_flask_web' .

打标签

docker tag 镜像id 镜像名称

运行容器

docker run -d -p 80:80 my-nginx

流程图:Dockerfile构建示例

编写Dockerfile
docker build
构建镜像
docker tag
打标签
docker run
运行容器
内容汇总表格
章节命令说明
获取镜像docker pull从仓库拉取镜像
获取镜像docker commit从容器创建镜像
获取镜像编写Dockerfile通过Dockerfile构建镜像
基础指令FROM定义基础镜像
基础指令MAINTAINER定义维护者信息
基础指令RUN执行命令
基础指令ADD添加文件/目录
基础指令COPY复制文件/目录
基础指令WORKDIR设置工作目录
基础指令USER切换用户
基础指令VOLUME定义挂载卷
基础指令EXPOSE暴露端口
基础指令CMD指定启动命令
基础指令ENTRYPOINT指定启动程序
基础指令ENV设置环境变量
基础指令ARG构建时设置变量
构建示例docker build构建Docker镜像
构建示例docker tag打标签
构建示例docker run运行容器

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com