在以docker容器执行某些任务时会出现缺少命令需要安装的情况,比如:Jenkins在编译得时候使用的是docker得容器环境导致少包无法编译且进入容器中没有root权限
docker commit 67bc30ca936c my_new_image:tag
:将容器ID67bc30ca936c
的容器打包成my_new_image:tag
镜像# 刚才打包的镜像
FROM my_new_image:tag
# 使用root权限
USER root
# 修改容器中的apt镜像源
#RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
# 执行apt命令 在容器中安装相应的包
#RUN apt update && apt install -y zlib1g-dev
# 修改root的密码 简单粗暴,后面就可以在容器中用这个密码登录root
RUN echo "root:newpassword" | chpasswd
# 把执行用户切回去
USER jenkins
docker build -t jenkins:202408233 .
:执行构建,重新构建镜像docker run
:执行新打包的镜像或者修改docker-compose中的镜像,换成新打包的docker exec -it jenkins /bin/bash
: 进入到容器中,然后su使用刚才的密码登录root就可以正常安装相关包了