如何修改Docker容器内的vdb-config文件并构建自定义镜像?
修改sra-tools镜像中vdb-config超时配置的可行方案
现状梳理
已拉取镜像biomystery/sra-tools-pigz:2.10.9,启动容器后发现:
- 需修改的配置路径
/usr/local/ncbi/sra-tools/bin/vdb-config是软链接,指向同目录下的vdb-config.2 - 容器内无nano/vim等常用文本编辑器
- 直接复制软链接到本地无法获取真实配置文件内容
以下是两种可行的修改方案,最终均可生成修改后的镜像:
方案一:容器内直接修改并提交镜像
进入容器并安装编辑器
执行命令进入容器:docker exec -it <容器ID/名称> /bin/sh根据容器基础系统安装编辑器:
- 若为Alpine系统(大概率):
apk add --no-cache vim - 若为Debian/Ubuntu系统:
apt update && apt install -y vim
- 若为Alpine系统(大概率):
编辑真实配置文件
直接编辑软链接指向的真实文件:vim /usr/local/ncbi/sra-tools/bin/vdb-config.2在文件中找到对应超时项(如
/libs/kns/connect/timeout、/http/timeout/read等),调整为需要的毫秒值。保存退出并提交镜像
保存修改后退出容器,执行命令提交为新镜像:docker commit <容器ID> biomystery/sra-tools-pigz:2.10.9-modified标签可根据需求自定义。
方案二:通过Dockerfile构建新镜像(推荐,可重复构建)
复制真实配置文件到本地
直接复制软链接指向的目标文件,而非软链接本身:docker cp <容器ID>:/usr/local/ncbi/sra-tools/bin/vdb-config.2 ./vdb-config.2本地修改配置文件
使用本地编辑器(如vscode、vim)打开vdb-config.2,调整超时参数至目标值。编写Dockerfile
在本地创建Dockerfile文件,内容如下:FROM biomystery/sra-tools-pigz:2.10.9 # 替换容器内的配置文件 COPY vdb-config.2 /usr/local/ncbi/sra-tools/bin/vdb-config.2 # 确保软链接指向正确(若原软链接正常可省略) RUN ln -sf /usr/local/ncbi/sra-tools/bin/vdb-config.2 /usr/local/ncbi/sra-tools/bin/vdb-config构建新镜像
在Dockerfile所在目录执行构建命令:docker build -t biomystery/sra-tools-pigz:2.10.9-modified .
验证配置生效
启动修改后的镜像,进入容器执行以下命令确认超时配置:
cat /usr/local/ncbi/sra-tools/bin/vdb-config.2 | grep -E "(timeout|millisecs)"
内容的提问来源于stack exchange,提问作者PesKchan
相关产品推荐
相关产品推荐

