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 这个环境变量会被嵌入到新的镜像中。当使用这个新镜像来运行容器时,环境变量则会生效。

相关推荐
qq_448941082 小时前
10、k8s对外服务之ingress
linux·容器·kubernetes
野猪佩挤2 小时前
minio作为K8S后端存储
云原生·容器·kubernetes
drebander2 小时前
Docker 与 Kubernetes(K8s)初探
docker
ccmjga5 小时前
升级 SpringBoot3 全项目讲解 — Spring Boot 3 中如何发Http请求?
java·spring boot·后端·docker·gradle·springboot·spring security
福大大架构师每日一题8 小时前
6.4 k8s的informer机制
云原生·容器·kubernetes
CarryBest11 小时前
搭建Kubernetes (K8s) 集群----Centos系统
容器·kubernetes·centos
曹天骄11 小时前
Docker Compose Installation on CentOS 7.9
docker·eureka·centos
wgslucky12 小时前
docker 安装jenkins
docker·容器·jenkins
Karoku06612 小时前
【CI/CD】持续集成及 Jenkins
运维·ci/cd·docker·云原生·容器·kubernetes·jenkins
鸡鸭扣17 小时前
Docker:3、在VSCode上安装并运行python程序或JavaScript程序
运维·vscode·python·docker·容器·js