标签: docker-for-mac

Docker运行失败,来自守护程序的错误响应

我只需运行以下命令:

docker run -d -p 80:80 --name webserver nginx
Run Code Online (Sandbox Code Playgroud)

拉动所有图像后返回此错误:

docker:来自守护程序的错误响应:驱动程序在端点webserver上编程外部连接失败(ac5719bc0e95ead1a4ec6b6ae437c4c0b8a9600ee69ecf72e73f8d2d12020f97):启动userland代理时出错:绑定0.0.0.0:80:意外错误(EADDRINUSE失败).

这是我的码头版本信息:

Client:
Version:      1.12.0
API version:  1.24
Go version:   go1.6.3
Git commit:   8eab29e
Built:        Thu Jul 28 21:15:28 2016
OS/Arch:      darwin/amd64

Server:
Version:      1.12.0
API version:  1.24
Go version:   go1.6.3
Git commit:   8eab29e
Built:        Thu Jul 28 21:15:28 2016
OS/Arch:      linux/amd64
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

macos docker docker-for-mac docker-desktop

7
推荐指数
1
解决办法
5078
查看次数

使用"docker cp"时文件未获得更新

我试图使用docker cp将.class文件从我的主机复制到容器中.我使用以下命令:

docker cp foo.class container:/path/foo.class
Run Code Online (Sandbox Code Playgroud)

当容器内运行的服务器关闭时,我这样做.

但是,我看到foo.class没有更新我的最新文件,如果我尝试rm文件我得到一个

rm: cannot remove foo.class: Stale file handle
Run Code Online (Sandbox Code Playgroud)

这是我的docker版本(适用于Mac的Docker):

docker version
Client:
Version:      1.13.0
API version:  1.25
Go version:   go1.7.3
Git commit:   49bf474
Built:        Wed Jan 18 16:20:26 2017
OS/Arch:      darwin/amd64

Server:
 Version:      1.13.0
 API version:  1.25 (minimum version 1.12)
 Go version:   go1.7.3
 Git commit:   49bf474
 Built:        Wed Jan 18 16:20:26 2017
 OS/Arch:      linux/amd64
 Experimental: true
Run Code Online (Sandbox Code Playgroud)

有谁见过这种情况?

TIA

docker docker-for-mac

7
推荐指数
0
解决办法
661
查看次数

如何在 Docker 上安装 tshark?

我想使用 Dockerfile 在 Docker for Mac 上的 ubuntu17.04 上安装 tshark。我正在使用 docker-compose

apt install tshark,有如下提示。
尽管我输入了提示停止安装yes

如何在 Dockerfile 中安装 tshark?

Dumpcap can be installed in a way that allows members of the "wireshark" system
group to capture packets. This is recommended over the alternative of running
Wireshark/Tshark directly as root, because less of the code will run with
elevated privileges.

For more detailed information please see
/usr/share/doc/wireshark-common/README.Debian.

Enabling this feature may be a security risk, so it …
Run Code Online (Sandbox Code Playgroud)

installation tshark docker dockerfile docker-for-mac

7
推荐指数
2
解决办法
5112
查看次数

如何检测是否安装了 docker for mac?

我有一些makefiles大多数东西应该在没有配置的情况下运行的地方。这些 makefiledocker-machine过去曾使用过。

有没有办法检测bash用户是否使用docker desktop for mac而不是docker-machine

docker docker-machine docker-for-mac docker-desktop

6
推荐指数
2
解决办法
1万
查看次数

无法连接到在docker容器内运行的django服务器(Docker for mac)

我有一个在我的系统上运行的docker容器,我开始使用这个命令:

docker run -it  -v ~/some/dir -p 8000:80  3cce3211b735 bash
Run Code Online (Sandbox Code Playgroud)

现在docker ps列出了这个:

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                             NAMES
44de7549d38e        3cce3211b735        "bash"              14 minutes ago      Up 14 minutes       22/tcp, 443/tcp, 8082/tcp, 0.0.0.0:8000->80/tcp   hardcore_engelbart
Run Code Online (Sandbox Code Playgroud)

在容器内部,我使用以下命令运行我的django应用程序: python manage.py runserver 80

但我无法使用以下任何一种方式查看页面:

1.localhost:8000

2.127.0.0.1:8000

我明白我的8000端口映射到容器上的80端口.但为什么我无法访问它.我使用docker for mac而不是docker工具箱.如果您需要更多信息,请提供帮助和评论.

django docker docker-for-mac

6
推荐指数
1
解决办法
2229
查看次数

Docker 更新后缺少 Mysql 表:“引擎中不存在 TableName”

最近的 Docker 更新似乎导致 MariaDB 中的(仅部分)InnoDB 表无法访问。我得到:

#1932 - Table 'dbname.SomeTableName' doesn't exist in engine

尝试访问它们时(它们确实出现在表格列表中)。我过去更新了 Docker(和图像)没有问题。db 文件和权限看起来不错。

我可以从备份中重新创建“丢失”的表(约 35 个中的 4 个),但是当我尝试删除它们时,我得到:

#1347 - 'dbname.SomeTableName' is not VIEW

我正在使用 Docker 映像mariadb:10.2(MariaDB-10.2.12+maria~jessie) 作为本地 Docker-for-Mac 开发环境的一部分,用于持久数据存储的绑定安装。docker-compose.yml 文件如下所示:

mysql: image: mariadb:10.2 volumes: - ./data/mysql:/var/lib/mysql

我以前从未遇到过此错误,无法转储或导出无法访问的表。有没有办法恢复或修复(或删除)它们?我宁愿不必重新创建整个数据库。

mysql mariadb docker docker-compose docker-for-mac

6
推荐指数
1
解决办法
4216
查看次数

如何从 Docker-for-mac 或 Docker-for-Windows 获取可浏览的 url?

在 minikube 中,我可以通过minikube service kubedemo-service --url. 如何type: LoadBalancer在 Kubernetes 模式下获取Docker for Mac 或 Docker for Windows 中服务的 URL ?

service.yml 是:

apiVersion: v1
kind: Service
metadata:
  name: kubedemo-service
spec:
  type: LoadBalancer
  selector:
    app: kubedemo
  ports:
  - port: 80
    targetPort: 80
Run Code Online (Sandbox Code Playgroud)

当我切换到type: NodePort并运行时,kubectl describe svc/kubedemo-service我看到:

...
Type:                     NodePort
LoadBalancer Ingress:     localhost
...
NodePort:                 <unset>  31838/TCP
...
Run Code Online (Sandbox Code Playgroud)

我可以浏览http://localhost:31838/以查看内容。切换到type: LoadBalancer,我看到 localhost 入口线,kubectl describe svc/kubedemo-service但我可以ERR_CONNECTION_REFUSED浏览它。

(我很熟悉,http://localhost:8080/api/v1/namespaces/kube-system/services/kubedemo-service/proxy/尽管这会更改站点的根目录,破坏假定根目录的 …

docker kubernetes docker-for-windows docker-for-mac

6
推荐指数
1
解决办法
2021
查看次数

如何缩小 Docker 磁盘映像,但在 Docker for Mac 中保留卷?

当减少 Docker 磁盘映像的大小时,Docker for Mac 会发出警告,它将删除所有映像、容器和卷。 在此输入图像描述

我不介意丢失图像和容器,但是有没有办法保留卷?有没有办法暂时将卷从 Docker 磁盘映像“复制”到主机文件系统的另一部分,缩小磁盘映像,然后将卷复制回其中?

docker docker-image docker-volume docker-for-mac

6
推荐指数
1
解决办法
920
查看次数

docker 安装卷上的 inotify (Mac / Linux)

我已经搜索了几个小时,似乎找不到该问题的最新答案

问题:显然 VirtualBox 正在 MacOS 上由 Docker 使用,并且它不希望将文件通知从主机操作系统传递到容器。因此,当从容器内执行这些操作时,inotifywait 只会通知监视文件夹上的文件活动。当这些操作是从主机执行时则不会。

Dockerfile

FROM python:3.9.6
COPY main.sh /bin/main.sh
RUN chmod +x /bin/main.sh
RUN apt-get update -y
RUN apt-get install -y inotify-tools
CMD /bin/main.sh
Run Code Online (Sandbox Code Playgroud)

主目录

#!/usr/bin/env bash

inotifywait -mq -r -e create -e modify -e delete -e move /data |
    while read path action file; do
        echo "The file '$file' appeared in directory '$path' via '$action'" >> log.txt
    done
Run Code Online (Sandbox Code Playgroud)

构建容器

docker build -f Dockerfile -t my_container .
Run Code Online (Sandbox Code Playgroud)

运行容器

docker run -it -v …
Run Code Online (Sandbox Code Playgroud)

inotify inotifywait docker docker-for-mac

6
推荐指数
1
解决办法
5594
查看次数

使用 docker for mac 在 docker 容器中公开 TTY 设备

我正在尝试将插入我的 mac 的 Arduino 公开到我在Docker for Mac(无虚拟机)中运行的 Linux 实例。

Arduino 将自己暴露为/dev/tty.usbserialXXX. 我使用的node是基于 ubuntu 的 docker 镜像。

我正在运行的命令是

$ docker run --rm -it -v `pwd`:/app --device /dev/tty.usbmodem1421 node bash
docker: Error response from daemon: linux runtime spec devices: error gathering device information while adding custom device "/dev/tty.usbmodem1421": lstat /dev/tty.usbmodem1421: no such file or directory.
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用--privileged

$ docker run --rm -it -v `pwd`:/app --device /dev/tty.usbmodem1421 --privileged node bash
root@8f18fdbcf64d:/# ls /dev/tty.*
ls: cannot access /dev/tty.*: …
Run Code Online (Sandbox Code Playgroud)

linux macos node-serialport docker docker-for-mac

5
推荐指数
1
解决办法
9703
查看次数