太长了;我希望 ansible 通过 http 而不是 https 来提取 docker 镜像。
我有两个虚拟机在同一网络中运行。其中之一是本地 Docker 注册表。另一个应该通过 ansible 脚本从前者提取图像。但是,我收到一个错误,指出注册表需要 https,但实际是 http。
这似乎解决了之前的问题。用于从私有注册表运行 Docker 容器的 Ansible 任务
不幸的是,ansible docker: 已经过时了,我需要使用 docker_container,而后者没有 insecure_registry 选项。
这就是现在的样子
- name: Run kollega
docker_container:
name: image_name
image: "ip-to-registry/image:latest"
ports:
- "4000:4000"
restart_policy: unless-stopped
recreate: yes
pull: yes
env:
Run Code Online (Sandbox Code Playgroud)
我可以在此处添加一些神奇的命令来接受 http 注册表,还是我必须生成一些自签名证书?
我正在尝试使用 podman (版本:3.2.3)登录私有 docker 注册表。
\n我使用时安装的默认虚拟机podman machine init
证书(即.pem文件)安装在 macOS\xe2\x80\x99s 钥匙串中。
当我跑步时:
\npodman login myhost.io\nRun Code Online (Sandbox Code Playgroud)\n输入用户名和密码后,我得到:
\nError: authenticating creds for "myhost.io": error pinging docker registry myhost.io: Get "https://myhost.io/v2/": x509: certificate signed by unknown authority\nRun Code Online (Sandbox Code Playgroud)\n我做错了什么吗?我可以使用钥匙串中保存的证书吗?或者我可以使用 .pem 文件吗\xe2\x80\x94-authfile?
感谢您的帮助和建议。
\n注册表容器正在端口 5000 上运行。
\n# docker ps\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\naccbeafa34fe ibmcom/registry:2.6.2.5 "registry serve /etc\xe2\x80\xa6" 3 minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp local-registry\nRun Code Online (Sandbox Code Playgroud)\nsudo -E docker push localhost:5000/pgp-bench:latest\nThe push refers to repository [localhost:5000/pgp-bench]\nca9a5caaa0d5: Pushed \ndd9235795971: Pushed \n4dfdebe31f24: Pushed \n98a59ff53764: Retrying in 1 second\n\n-->on retrying\n# docker push localhost:5000/pgp-bench:latest\nThe push refers to repository [localhost:5000/pgp-bench]\nGet http://localhost:5000/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)\nRun Code Online (Sandbox Code Playgroud)\n在卷曲上,它会一直等待
\n# curl http://localhost:5000\nRun Code Online (Sandbox Code Playgroud)\n注册表容器的日志
\ntime="2021-10-08T06:25:19.963905582Z" level=info msg="endpoint local-5003 disabled, …Run Code Online (Sandbox Code Playgroud) 我有一个 Golang 项目,已构建并放入scratch镜像中:
# Build binary
FROM golang:1.17-alpine AS build-env
ADD . /app
WORKDIR /app
RUN env CGO_ENABLED=0 go build -ldflags="-s -w" -o myapp ./cmd/myapp/main.go
# Create image
FROM scratch
COPY --from=build-env /app/myapp /
ENTRYPOINT ["/myapp"]
Run Code Online (Sandbox Code Playgroud)
由于 Golang 允许针对多种架构进行交叉编译(并且比在模拟环境中构建要快得多),所以我想做这样的事情:
# Build binary
FROM golang:1.17-alpine AS build-env
ADD . /app
WORKDIR /app
RUN env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags="-s -w" -o myapp_linux_i386 ./cmd/myapp/main.go # Linux 32bit
RUN env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o myapp_linux_x86_64 ./cmd/myapp/main.go …Run Code Online (Sandbox Code Playgroud) 我在一台服务器上安装了 pycharm,在另一台服务器上安装了 docker。
我希望将 PyCHarm 连接到另一台服务器上的 docker。
我已经添加了服务器的IP地址和用户名和密码,但测试连接失败。
我到底应该在 PyCharm 的配置屏幕中输入什么?我需要使用特定的地址格式吗?
我刚刚创建了一个 Azure 容器应用程序,并尝试将其链接到 docker.io 上的私有存储库。如果我让它提取公共图像,它会起作用,但如果它是私有图像,则不起作用,即使我指定了所有信息。我还使用了 github 的自动“持续部署”(azure 门户基本上做了所有事情,人们认为这会起作用),我输入了相同的信息( docker.io、用户名和密码以及图像标签,当我在控制台中测试),生成的 github 操作能够构建并推送到 docker 注册表,证明用户和密码是好的,但它也不想更新容器应用程序。
这是我尝试通过 github 操作执行此操作的最新错误:以下字段无效或丢失。无效值:“docker.io/pasc32/companio:latest”:GET https:: UNAUTHORIZED:需要身份验证;[地图[操作:拉类:名称:pasc32/companio 类型:存储库]]:template.containers.test.image。
当我尝试直接从门户执行此操作时,它会在顶部添加一条通知,该通知将永远转动,如果我刷新页面,则不会发生任何变化,并且容器会恢复到之前的状态,在中没有通知的痕迹活动日志。
有谁知道这是什么问题吗?
感谢!
我有一个 React 应用程序,我正在尝试为此应用程序设置 ci/cd。
我在 GitHub actions 中遇到这样的错误,并且在“导出到图像”期间遇到此错误
name: "deploy-prod"
on:
push:
branches:
- "configure-ci/cd-pipeline-to-frontend-repo"
env:
REPOSITORY_NAME: ${{ github.event.repository.name }}
REACT_APP_BASENAME: "FooApp"
jobs:
build-backend:
runs-on: ubuntu-latest
steps:
- id: string
uses: ASzc/change-string-case-action@v1
with:
string: ${{ secrets.REGISTRY_HOST }}/${{ github.repository }}:build-${{ github.run_number }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
registry: ${{ secrets.REGISTRY_HOST }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Build …Run Code Online (Sandbox Code Playgroud) 我需要构建一个32-bitUbuntu映像,所以我这样做
? ~ docker search 32bit/ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
32bit/ubuntu Ubuntu for i386 (32bit) 9
32bit/ubuntu-upstart ubuntu-upstart for i386 (32bit) 1
pgeraghty/casperjs_slimerjs_ubuntu_32bit 0 [OK]
pgeraghty/slimerjs_ubuntu_32bit 0 [OK]
cato1971/ubuntu Base 32-bit Ubuntu image from cato1971/ubu... 0 [OK]
osrf/ubuntu_32bit Ubuntu 32bit images 0
cato1971/ubuntu-32bit Base Ubuntu 32 bit image 0
souzaonofre/ubuntu-32bits Ubuntu 32bits images 0
? ~ docker pull 32bit/ubuntu
Pulling repository 32bit/ubuntu
FATA[0001] Tag latest not found in repository 32bit/ubuntu
? ~
Run Code Online (Sandbox Code Playgroud)
那么这里有什么问题?
我需要做些什么才能通过Docker Hub向公众提供我的图像?
搜索有些错误
The push refers to a repository docker.io/yourname/yourimage
Run Code Online (Sandbox Code Playgroud)
要么
Repository does not exist: docker.io/yourname/yourimage
Run Code Online (Sandbox Code Playgroud) 我试图将图像推送到在minikube中运行的本地注册表,但得到以下错误:
Successfully built ee84225eb459
Successfully tagged user/apiserver:0.0.1
$ docker push localhost:5000/user/apiserver:0.0.1
The push refers to a repository [localhost:5000/user/apiserver]
An image does not exist locally with the tag: localhost:5000/user/apiserver
Run Code Online (Sandbox Code Playgroud)
我已经尝试用以下方式启动minikube:
minikube start --vm-driver xhyve --insecure-registry localhost:5000
eval $(minikube docker-env)
Run Code Online (Sandbox Code Playgroud)