我第一次安装 docker Desktop for mac,但无法启动\xe2\x80\x99。\n我安装如下。
\n\xe3\x83\xbb 在此官方页面( https://www.docker.com/get-started )注册并单击 Mac intel 芯片的下载按钮。
\n\xe3\x83\xbb 打开 Docker.dmg 文件并将 Docker.app 拖放到应用程序中。
\n\xe3\x83\xbb 对 docker 进行了重点搜索并启动了它。
\n\xe3\x83\xbb 单击通知屏幕上的 \xe2\x80\x9copen\xe2\x80\x9d 按钮,该按钮显示 \xe2\x80\x9cDocker.app\xe2\x80\x9d 是从 Internet 下载的应用程序。您确定要打开它吗?
\n此后应用程序没有任何响应。
\n当前状态
\n“应用程序”文件夹中有一个 docker 应用程序,位置有 Docker(带有弹出按钮)。\n我无法启动该应用程序,也无法使用任何 docker 命令。\n其他应用程序运行良好且舒适。
\n我尝试重新启动我的电脑,关闭防火墙和 FireVault,然后再次安装,但发生了完全相同的事情。
\n我使用的是装有最新版本 macOS Big Sur 11.6 的 MacBook Pro 16 (2019)。
\n我无法在Docker中安装pip.
这是我的Dockerfile:
FROM ubuntu:14.04
# Install dependencies
RUN apt-get update -y
RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip
Run Code Online (Sandbox Code Playgroud)
建设时,我得到:
Sending build context to Docker daemon 109.6 kB
Step 1 : FROM ubuntu:14.04
---> b549a9959a66
Step 2 : RUN apt-get update -y
---> Using cache
---> 84577471562c
Step 3 : RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip
---> Running in 49252a6d0eb1
Reading package lists...
Building dependency tree...
Reading state …Run Code Online (Sandbox Code Playgroud) 症状是:主机具有适当的网络访问权限,但在容器内运行的程序无法解析DNS名称(在调查更多内容之前可能看起来"无法访问网络").
$ sudo docker run -ti mmoy/ubuntu-netutils /bin/bash
root@082bd4ead733:/# ping www.example.com
... nothing happens (timeout) ... ^C
root@082bd4ead733:/# host www.example.com
... nothing happens (timeout) ... ^C
Run Code Online (Sandbox Code Playgroud)
(docker图像mmoy/ubuntu-netutils是一个基于Ubuntu的简单图像ping,host包含在内,方便,因为网络坏了,我们不能使用apt install这些工具)
问题来自于docker自动将Google的公共DNS配置为容器内的DNS服务器:
root@082bd4ead733:/# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
这只适用于许多配置,但显然不适用于主机在网络上运行,其中Google的公共DNS被某些防火墙规则过滤.
发生这种情况的原因是:
/etc/resolve.conf是nameserver 127.0.1.1 …我的计算机位于具有私有DNS服务器的专用网络上,以及用于DNS解析的专用区域.我可以从主机解析此区域上的主机,但我无法从主机上运行的容器中解析它们.
主持人:
root@host:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
root@host:~# ping privatedomain.io
PING privatedomain.io (192.168.0.101) 56(84) bytes of data.
Run Code Online (Sandbox Code Playgroud)
容器:
root@container:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
root@container:~# ping privatedomain.io
ping: unknown …Run Code Online (Sandbox Code Playgroud) 尝试在自己的房屋中构建Docker映像时,我发现了一个奇怪的问题,尽管我不确定它是否与浏览器相关,或者仅与网络相关。
所以这就是我得到的。我试图在Dockerfile中运行此命令。
RUN apt-get update -qq && \
apt-get install -y build-essential \
libpq-dev \
postgresql-client
Run Code Online (Sandbox Code Playgroud)
等待片刻后,该过程会输出类似以下内容的内容。
W: Failed to fetch http://deb.debian.org/debian/dists/jessie/InRelease
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease
W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease
W: Failed to fetch http://deb.debian.org/debian/dists/jessie/Release.gpg Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://security.debian.org/dists/jessie/updates/Release.gpg Temporary failure resolving 'security.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/Release.gpg Temporary failure resolving 'deb.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我在办公室网络中尝试过此操作,则不会发生这种情况。然后,如果我尝试绑定到手机数据网络,也不会发生这种情况。
我尝试http://deb.debian.org/debian/dists/jessie/InRelease在浏览器中打开,它显示404。我尝试通过多个网络使用Tor浏览器,它也显示404。
docker映像基于 …
我无法在公司防火墙后面运行 Docker “入门”示例。在家中无需防火墙即可正常运行。
当我使用 构建图像时docker build -t my_tag .,尝试安装一些 python 包时失败。docker 文件中有这样的命令:
RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
错误信息是:
收集Redis(来自-rrequirements.txt(第1行))在连接因“ProxyError('无法连接到代理。'”而中断后重试(重试(总计= 4,连接=无,读取=无,重定向=无)) NewConnectionError(': 无法建立新连接: [Errno -2] 名称或服务未知',))': /simple/redis/
我尝试在 dockerfile 中设置代理(以各种格式,但它们都失败):
ENV http_proxy http://my_username:my_password@my_host:/80
ENV https_proxy https://my_username:my_password@my_host:/80
ENV HTTP_PROXY http://my_username:my_password@my_host:/80
ENV HTTPS_PROXY https://my_username:my_password@my_host:/80
ENV http_proxy http://my_username:my_password@my_host:80
ENV https_proxy https://my_username:my_password@my_host:80
ENV HTTP_PROXY http://my_username:my_password@my_host:80
ENV HTTPS_PROXY https://my_username:my_password@my_host:80
ENV http_proxy=http://my_username:my_password@my_host:80
ENV https_proxy=https://my_username:my_password@my_host:80
ENV HTTP_PROXY=http://my_username:my_password@my_host:80
ENV HTTPS_PROXY=https://my_username:my_password@my_host:80
Run Code Online (Sandbox Code Playgroud)
我尝试在文件 /etc/systemd/system/docker.service.d/http-proxy.conf 中设置环境:
[Service]
Environment="HTTP_PROXY=http://my_username:my_password@my_host:80/" "HTTPS_PROXY=https://my_username:my_password@my_host:80/"
Run Code Online (Sandbox Code Playgroud)
我尝试更改RUN pip installdockerfile 中的命令,使其还包含代理:
RUN pip install --proxy="my_username:my_password@my_host:80" …Run Code Online (Sandbox Code Playgroud) 我两天来一直在努力解决以下问题。当我尝试运行包管理系统以构建新的容器映像时,包管理系统失败,我尝试使用 alpine:latest 和 ubuntu:latest。如果我尝试从正在运行的容器中使用它们,即使我使用了该--network host选项,我也会得到相同的行为。
例如,如果我尝试构建以下容器:
FROM alpine:latest
RUN apk update
Run Code Online (Sandbox Code Playgroud)
像这样:
docker build --no-cache -t test .
Run Code Online (Sandbox Code Playgroud)
我得到:
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.9/main: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.b89edf6e.tar.gz: No such file or directory
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.9/community: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.737f7e01.tar.gz: No such file or directory
Run Code Online (Sandbox Code Playgroud)
对于 ubuntu:
FROM ubuntu:latest
RUN apt-get update
Run Code Online (Sandbox Code Playgroud)
我得到:
Sending build context to Docker daemon 3.954MB
Step 1/2 : FROM ubuntu:latest
---> 47b19964fb50
Step …Run Code Online (Sandbox Code Playgroud) 我无法使用以下Dockerfile构建我的图像:
FROM ubuntu
RUN apt-get -y update && apt-get -y install \
nodejs npm ssh
# cache npm install when package.json hasn't changed
WORKDIR /tmp
ADD package.json package.json
RUN npm install
RUN npm install -g pm2
RUN mkdir /sparrow
RUN cp -a /tmp/node_modules /sparrow
WORKDIR /sparrow
ADD . /sparrow/
RUN npm run build
# ssh keys
WORKDIR /root
RUN mv /sparrow/.ssh /root/
# upload js and css
WORKDIR /sparrow/build
# UPLOAD TO S3!
# go back to /sparrow
WORKDIR /sparrow …Run Code Online (Sandbox Code Playgroud)