alpine基础镜像使用
关于Alpine的相关知识,可以参考下边的链接
一. alpinedocker容器里边运行hello也会报错/bin/sh:hello:notfound
Alpine docker容器里边运行hello也会报错/bin/sh: hello: not found
而同样的hello可执行程序,在Ubuntu系统中是可以正常运行的。
解决方法,参考下边链接里最后的内容。
gnu libc和musl libc的争论
而这些终于在这个issue中给得到了解决,由于没有热闹可看,请读者自行阅读
https://github.com/ibmdb/node-ibm_db/issues/217
使用的相关内容在这里:
https://github.com/sgerrand/alpine-pkg-glibc
简单来说,解决的方法就是在Alpine里面安装glibc,让Alpine不再是Alpine
验证
看完热闹,现在花1分钟快速解决一下遗留问题。重新回到问题现场。按照如下三步骤进行安装
步骤1: 下载key
~ # wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub ~ # echo $? 0 ~ # ls /etc/apk/keys/sgerrand.rsa.pub /etc/apk/keys/sgerrand.rsa.pub ~ #
步骤2: 下载apk安装文件
~ # wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk Connecting to github.com (13.229.188.59:443) Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (52.216.176.203:443) glibc-2.29-r0.apk 100% |****************************************************************************************| 2006k 0:00:00 ETA ~ # ls glibc-2.29-r0.apk
步骤3: 安装
~ # apk add glibc-2.29-r0.apk (1/1) Installing glibc (2.29-r0) OK: 9 MiB in 15 packages
二、更改镜像仓库
目前Docker镜像越来越倾向于使用Alpine系统作为基础的系统镜像,alpine3.4为例修改
# 备份原始文件
cp /etc/apk/repositories /etc/apk/repositories.bak
# 修改为国内镜像
echo "http://mirrors.aliyun.com/alpine/v3.4/main/" > /etc/apk/repositories