docker镜像alpine无法联网
alpine docker镜像无法联网出现如下错误:
ERROR: https://mirrors.ustc.edu.cn/alpine/v3.15/main: temporary error (try again later) WARNING: Ignoring https://mirrors.ustc.edu.cn/alpine/v3.15/main: No such file or directory 3069277072:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1914:
基础的 docker 镜像是~ python:3.6-alpine ~
stack overflow上看到一个解答
docker can't build because of alpine error - Stack Overflow
- 使用~ ~
docker build . --network local
进行构建--错误仍在 - 添加~
8.8.8.8~到文件/etc/resolv.conf
并重启docker--错误仍在
思路:启动一个基础docker 容器,并进入查找错误原因
- 启动并进入容器
docker run -it python:3.6-alpine /bin/sh
- 执行Dockerfile文件里的命令
apk安装及更新时出错
使用~ping命令测试网络连通性,出错ping: clock_gettime(MONOTONIC) failed
使用nc~命令连接外部服务器,可以连接ip,不能连接域名
猜想应该是域名解析的问题
对alpine不熟,换一个其他的基础容器
使用镜像~ python:3.6 ~,启动镜像后使用pip时报错
Fatal Python error: Py_Initialize: can't initialize time
PermissionError: [Errno 1] Operation not permitted
Current thread 0xb6fda010 (most recent call first):
Aborted (core dumped)
# pip
Fatal Python error: Py_Initialize: can't initialize time
PermissionError: [Errno 1] Operation not permitted
Current thread 0xb6f12010 (most recent call first):
Aborted (core dumped)
比较了一下两个python镜像的大小
python 3.6 a3bba401d788 2 weeks ago 696MB
python 3.6-alpine dc8c4f7b64b7 2 weeks ago 34.8MB
还是用~ alpine ~版本的吧
域名解析问题
搜到这里,说要将~ /etc/resolv.conf 文件中的 ndots ~注释掉
进入容器查看~ /etc/resolv.conf 文件,并没有字符 ndots ~
搜索ping的错误~ ping: clock_gettime(MONOTONIC) failed ~
找到了这里,有三种解决方法
- 安装一个软件包
wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.4-1~bpo10+1_armhf.deb && sudo dpkg -i libseccomp2_2.4.4-1~bpo10+1_armhf.deb
下载时发现2.4.4版本已经没了,于是下载2.5.1版本
安装后仍然时间还不对,安装前是1970年,安装后变成了2071年 - 第二个方法一样,不过是添加源安装软件
- 方法三要更新树莓派的系统
方法2和方法3需要添加源或更新系统,不想搞太多源,也懒得重新安装
又搜了一下,看到这里,有人提示添加~ --security-opt
seccomp=unconfined ~
测试一下
❯ docker run -it --rm --security-opt seccomp=unconfined python:3.6-alpine ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: seq=0 ttl=48 time=45.827 ms
64 bytes from 220.181.38.148: seq=1 ttl=48 time=47.090 ms
网络可以ping通了,应该可行
但是使用~ docker build ~时,出现了问题
❯ docker build . --security-opt seccomp=unconfined
Error response from daemon: The daemon on this platform does not support setting security options on build
系统无法使用此选项
从其它系统构建镜像后导出
docker 镜像保存:
~ docker save 0d33 > proxy_pool.tar ~
docker镜像导入:
~ docker load < proxy_pool.tar ~
两个机器架构不同
按照这里进行跨平台构建即可