我是码头工人的新手,所以我的问题可能非常幼稚/愚蠢.我们目前使用的应用程序需要在不同的平台上编译,使其在所需的平台上工作,主要是Linux和Window.所以我们需要在不同的平台上编译源代码(C/C++),并根据他们的操作系统为客户提供不同的可执行文件.我的问题是1.对于docker我是否有可能在所有平台上都有一个可执行文件?即我在一个平台上编译我的源代码,例如在Linux中,并使用docker发送可执行文件以在Window平台中运行
提前致谢
有没有人尝试使用环境变量覆盖注册表中的配置选项,例如,如果必须使用s3存储桶作为存储.我阅读了文档,并说它(https://docs.docker.com/registry/configuration/):
Overriding configuration options
Environment variables may be used to override configuration parameters other than
version. To override a configuration option, create an environment variable named
REGISTRY_variable_ where variable is the name of the configuration option.
e.g
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/tmp/registry/test
will set the storage root directory to /tmp/registry/test
Run Code Online (Sandbox Code Playgroud)
所以我尝试了这个命令,但是当我启动注册表时似乎没有任何效果:
docker run -it -v /var/log/docker-registry:/var/log -p 5000:5000 \
-e REGISTRY_STORAGE_S3_ACCESSKEY=****************** \
-e REGISTRY_STORAGE_S3_SECRETKEY=****************** \
-e REGISTRY_STORAGE_S3_BUCKET=itmcc-docker-registry-backend \
-e REGISTRY_STORAGE_S3_REGION=us-east-1 \
registry:2.0
Run Code Online (Sandbox Code Playgroud)
在日志中,我看到常规输出,好像它没有考虑env变量并尝试连接到S3:
INFO[0000] endpoint local-8082 disabled, skipping environment=development instance.id=025c9fcd-2ec1-4d5f-82ec-d3246d54cdb5 service=registry version=v2.0.0 …Run Code Online (Sandbox Code Playgroud) 我正在使用Travis CI从Dockerfiles构建docker镜像,然后成功将它们推送到Docker Hub.
我已经创建了一个MD文件来描述图像以及如何使用它.我想在完整描述部分的Docker Hub上有相同的描述.
由于我将来可能会更新说明,因此我想让Travis CI使用新映像自动更新基于存储库中MD文件的描述.
谁知道怎么做?
根据https://docs.docker.com/registry/spec/api/,我可以打电话/v2/<name>/tags/list来获取给定图像的标签列表.它工作正常,例如:
{"name"=>"avi/test", "tags"=>["latest"]}
Run Code Online (Sandbox Code Playgroud)
但是,我想要每个标签的摘要.是的,"摘要"实际上是清单的散列(至少我最好从API中理解它;不是100%清楚).但是,我想知道"最新"(和其他所有标签)的唯一标识符是什么.
使用案例:我可能会有人将某个版本标记为最新版本,并希望检查该版本是最新的:
docker push avi/test:2.6
docker tag avi/test:2.6 avi/test:latest
docker push avi/test:latest
# build 2.7
docker push avi/test:2.7
# oops! Forgot to tag latest to 2.7
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,如果我不仅可以检查标签 - 这将给我"2.6","2.7","最新" - 还有摘要(至少是清单),我可以找到各种标签指向的内容,审计等
我在localhost中有我的docker-registry,我可以用命令拉/推:docker push localhost:5000/someimage
我怎么能用命令推送它docker push username@password:localhost:5000/someimage?
我在一个虚拟机中有一个docker swarm,它有2个核心4GB ram Centos.
在我部署docker私有注册表(注册表2.6.4)时,它将服务状态显示为永久挂起.我用了
docker service ps <<registry_name>>
当我docker inspect <<task_id>>在消息中检查使用时,我得到了
"没有合适的节点(在1节点上不满足调度约束)".
我尝试了服务重启和重新部署.
如何解决这个问题?
我有一个包含一组图像的私人注册表.它可以视为应用程序存储.我的应用程序可以使用这些应用程序并在其他计算机上运行 为此,我的应用程序首先从私有注册表中提取映像,然后将其复制到本地注册表以供以后使用.
步骤如下:
docker pull privateregistry:5000/company/app:tag
docker tag privateregistry:5000/company/app:tag localregistry:5000/company/app:tag
docker push localregistry:5000/company/app:tag
Run Code Online (Sandbox Code Playgroud)
然后在我的网络中的另一台机器上:
docker pull localregistry:5000/company/app:tag
Run Code Online (Sandbox Code Playgroud)
有没有办法有效地将图像从存储库复制到另一个存储库而不使用其间的docker客户端?
docker 是否可以同时连接到多个注册表以及如何找出它当前也连接了哪些注册表?
$ docker help | fgrep registr
login Log in to a Docker registry
logout Log out from a Docker registry
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
Run Code Online (Sandbox Code Playgroud)
如您所见,没有列出注册表的选项。我确实通过运行找到了一种方法:
$ docker system info | fgrep -i registr
Registry: https://index.docker.io/v1/
Run Code Online (Sandbox Code Playgroud)
那么...一次仅一个注册表?这不像是apt可以指向多个来源的地方吗?任何人都可以向我指出一些关于 docker 和注册表的好文档吗?
奇怪的是,我在网上搜索没有结果。
我在这个阶段堆叠:
需要在deployment下面部署,但是kubernetes无法拉取镜像,报错信息:
无法拉取镜像“192.168.1.161:5000/kafka:latest”:rpc 错误:代码 = 未知描述 = 来自守护进程的错误响应:获取 https://192.168.1.161:5000/v2/:http:服务器给出了 HTTP 响应HTTPS客户端
apiVersion: v1
kind: Service
metadata:
name: kafka
labels:
app: kafka
spec:
type: NodePort
ports:
- name: port9094
port: 9094
targetPort: 9094
selector:
app: kafka
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kafka
spec:
replicas: 1
template:
metadata:
labels:
app: kafka
spec:
hostname: kafka
containers:
- name: redis
image: 192.168.1.161:5000/kafka:latest
imagePullPolicy: Always
ports:
- name: port9094
containerPort: 9094
- …Run Code Online (Sandbox Code Playgroud) 现在我有这样的需求?首先我需要将容器的文件系统导出为 tar 存档,然后我需要将此 tar 推送到我自己的 docker 注册表。所以我可以推送一个通过使用导出docker export image_name到我的私有注册表的 tar 文件。在此之前我只知道我可以使用docker push image_name. 谢谢!
docker ×10
docker-registry ×10
amazon-s3 ×1
boot2docker ×1
c++ ×1
docker-swarm ×1
dockerfile ×1
dockerhub ×1
kubernetes ×1
travis-ci ×1