dockerfile笔记
AI-摘要
GPT-4.0-turbo GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
dockerfile笔记
Takake1.docker数据卷
1.1.简介
- 实现宿主机和容器之间的文件或者文件的同步,一般用来解决容器的持久化存储或者是宿主机和容器之间的数据共享
1.2.操作
- 设置数据卷
1 | # 绝对路径 |
2.Dockerfile
2.1.简介
dockerfile可以用来定义镜像具体的变更
用自己的方式自定义镜像
镜像分层,每一层一个变更
基本语法以FROM开头,#为注释
2.2.构建一个简单的dockerfile
CMD
只有CMD和ENTRYPOINT指令是在容器运行的时候执行,其余命令都是在构建镜像的时候执行。
- 创建文件 HelloWorld
- 编写指令
1 | FROM centos:7 |
使用数组形式命令并不会解析$环境变量调用
而使用CMD echo $HOME则会解析环境变量
如果使用数组格式可以使用**[“sh”,”-c”,”echo $HOME”]**便可以解析环境变量
如果多个CMD命令,只会执行最后一个
- 编译镜像
1 | $ docker build -t hello:1.0 -f HelloWorld . |
2.3.ENV
- 定义环境变量
1 | FROM centos:7 |
2.4.WORKDIR
- 设定工作目录
1 | WORKDIR /a |
- WORKDIR也可以使用$引用环境变量
2.5.RUN
- 构建过程中使用的命令
1 | FROM centos:7 |
2.6.ADD
- 将网络文件或者本地文件上传至容器
1 | FROM nginx:1.21.5 |
2.7.EXPOSE
- 声明端口(没有实际意义),哪怕是不声明也无所谓,也可以使用-p映射端口,当然声明了也需要使用-p映射
1 | EXPOSE 80 |
2.8.COPY
- 单纯复制本地文件,但不解压tar.gz文件,且无法加载网络文件
1 | COPY dist.tar.gz . |
2.9.ENTRYPOINT
- 设置容器启动时的命令,且该命令不会由docker run命令覆盖,而CMD命令会被DOCKER RUN命令覆盖。
1 | CMD ["echo", "helloworld"] |
- 实际应用场景
1 | ENTRYPOINT ["java","-jar"] |
3.docker push
1 | # 登陆docker hub账号 |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果