docker commit构建镜像时环境变量不生效问题解决

描述

当使用 docker commit 命令提交容器镜像时,环境变量的配置并不会自动生效。

原因

这是因为 docker commit 命令只是将容器的当前状态保存为一个新的镜像,并不会修改容器的运行时配置。

甚至在容器修改profile配置文件后进行docker commit都不会直接生效,需要新镜像启动后使用source /etc/profile刷新才可以。

解决

要使环境变量生效,可以在 Dockerfile 中使用ENV指令来定义环境变量,然后通过docker build命令重新构建镜像。这样做会将环境变量的配置嵌入到新的镜像中,确保在容器启动时生效。

bash 复制代码
FROM base_image:tag

# 设置环境变量
ENV MY_VAR=value

# 其他的构建步骤
...

然后,通过命令docker build -t my_image .构建镜像,

在这个过程中,MY_VAR 这个环境变量会被嵌入到新的镜像中。当使用这个新镜像来运行容器时,环境变量则会生效。

相关推荐
没有名字的小羊1 小时前
8.Docker镜像讲解
运维·docker·容器·tomcat
木鱼时刻2 小时前
容器与 Kubernetes 基本概念与架构
容器·架构·kubernetes
企鹅侠客4 小时前
实践篇:14-构建 Node.js 应用程序镜像
docker·node.js·dockerfile
做一个AC梦4 小时前
Docker安装失败:Docker Desktop installation failed
运维·docker·容器
Shan12054 小时前
浅谈Docker Kicks in的应用
运维·docker·容器
Li&&Tao4 小时前
docker 常用命令
docker·容器·eureka
Jiude6 小时前
MinIO 社区版被故意阉割,Web管理功能全面移除。我来试试国产RustFS
后端·docker·架构
飞询6 小时前
Docker 安装 Elasticsearch 9
elasticsearch·docker
ladymorgana10 小时前
【docker】修改 MySQL 密码后 Navicat 仍能用原密码连接
mysql·adb·docker
有点小帅得平哥哥10 小时前
本地部署index-tts并且通过docker做成镜像
docker·index-tts