标签: docker-for-mac

为什么推送到私有的安全docker注册表失败?

我想在自我修复的AWS ECS集群上运行一个私有的,安全的,经过身份验证的docker注册表.群集设置已完成且工作正常,但我很难开始registry:latest运行.问题是,每次我推送图像时,推动blob失败,并进入重试周期,除非我得到超时.

为了确保我的ECS设置不是阻止程序,我尝试使用Docker4Mac 1.12.0-a在本地设置所有内容.

首先,非常基本的设置工作.我创建了自己的注册表图像版本,在那里我将我的TLS证书包和密钥以及必要的htpasswd文件直接放入图像中.[我知道,这是不安全的,我只是为了测试目的而这样做].所以这是我的Dockerfile:

FROM registry:latest

COPY htpasswd /etc/docker
COPY server_bundle.pem /etc/docker
COPY server_key.pem /etc/docker
Run Code Online (Sandbox Code Playgroud)

server_bundle.pem我的域名(CN =*.mydomain.com)的通配符证书mydomain.com是第一个,后面是中间CA证书,因此客户应该感到高兴.我的htpasswd文件是使用推荐的方法创建的:

docker run --entrypoint htpasswd registry:2 -Bbn heyitsme mysupersecurepassword > htpasswd
Run Code Online (Sandbox Code Playgroud)

我建立了我的形象:

docker build -t heyitsme/registry .
Run Code Online (Sandbox Code Playgroud)

然后我运行一个非常基本的版本,没有TLS和身份验证:

docker run --restart=always -p 5000:5000 heyitsme/registry
Run Code Online (Sandbox Code Playgroud)

我实际上可以拉动,标记和重新推送图像:

docker pull alpine
docker tag alpine localhost:5000/alpine
docker push localhost:5000/alpine
Run Code Online (Sandbox Code Playgroud)

这有效.接下来,我通过环境变量进行TLS和基本身份验证:

docker run -h registry.mydomain.com --name registry --restart=always -p 5000:5000 \ 
  -e REGISTRY_HTTP_HOST=http://registry.mydomain.com:5000 \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/docker/server_bundle.pem …
Run Code Online (Sandbox Code Playgroud)

docker docker-registry docker-for-mac

3
推荐指数
1
解决办法
1689
查看次数

无法访问在docker中运行的服务

我无法通过http://localhost:8000在docker镜像中运行来访问基于nodejs的服务.我正在使用Docker for Mac(https://docs.docker.com/docker-for-mac/)

我在这里按照教程https://nodejs.org/en/docs/guides/nodejs-docker-webapp/.

服务器在端口8000上运行.我使用以下命令启动docker镜像:

$ docker run -p 8000:8000 -d geuis/node-server:latest
Run Code Online (Sandbox Code Playgroud)

如果我跑,docker ps我看到:

CONTAINER ID        IMAGE                      COMMAND             CREATED             STATUS              PORTS                    NAMES
9fa2e446918b        geuis/node-server:latest   "npm start"         6 seconds ago       Up 5 seconds        0.0.0.0:8000->8000/tcp   unruffled_lewin
Run Code Online (Sandbox Code Playgroud)

如果我docker exec -it 9fa2e446918b /bin/bash可以访问docker vm,我可以curl http://localhost:8000从容器内部访问服务器.

但是,我curl http://localhost:8000从我的系统终端尝试相同的操作并且无法访问它.

不知道接下来我需要做什么.

localhost docker docker-for-mac

3
推荐指数
1
解决办法
3213
查看次数

Docker [for mac]文件系统变为只读,这破坏了Docker的几乎所有功能

我的Docker进入错误状态,无法再使用它。

输出docker system info

Containers: 14
Running: 2
Paused: 0
Stopped: 12
Images: 61
Server Version: 18.03.1-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: error
NodeID:
Error: open /var/lib/docker/swarm/worker/tasks.db: read-only file system
Is Manager: false
Node Address: 192.168.65.3
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init …
Run Code Online (Sandbox Code Playgroud)

perl docker dockerfile docker-compose docker-for-mac

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

什么是 Docker for Windows 的“minikube docker-env”替代品

我正在运行 Docker for Windows 的内置 Kubernetes 集群以进行开发,我需要对集​​群运行一些 Docker 命令,但我找不到 Minikube 的“minikube docker-env”的替代品。

我想做这样的事情来操作 Kubernetes 集群:

eval $(minikube docker-env)
Run Code Online (Sandbox Code Playgroud)

我想在完成 Kubernetes 集群后做这样的事情:

eval $(docker-machine env -u)
Run Code Online (Sandbox Code Playgroud)

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

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

如何在 LinuxKit (Mac 版 Docker) 中运行 perf?

我有 Docker for Mac 和 LinuxKit 内核版本4.9.125-linuxkit

perf在主机上不可用。我尝试将其安装在我的 Ubuntu 容器之一上,但无法获取内核linux-tools的版本控制包4.9.125。所以当我尝试运行 perf 时,我只是得到

WARNING: perf not found for kernel 4.9.125

有没有办法perf在我的 LinuxKit/Hyperkit 主机上运行?如果可以,如何运行?

perf docker docker-for-mac docker-desktop

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

在Docker for Mac上使用SSH隧道的Xdebug

我最近在Docker社区上阅读了很多关于如何使用Docker for Mac在PHPStorm中调试PHP应用程序的帖子.所有这些都包含有用的信息,但没有在一个地方看到工作解决方案.

php xdebug ssh-tunnel docker docker-for-mac

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

如何从本地 Kubernetes 连接到本地机器上的数据库

我在本地桌面上为Kubernetes使用Docker Desktop for mac。我正在尝试连接到安装在 pod 中的本地机器上的数据库,但无法确定主机地址应该是什么。我如何与我的机器在 pod 中的地址相关联?

请注意,我无法使用机器的 ip,因为 db 端口在我的网络中被阻止。

macos docker kubernetes docker-for-mac docker-desktop

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