Docker 使用卷拷贝将映像推送到另一个注册表
我使用以下命令在docker容器中本地运行图像Docker 使用卷拷贝将映像推送到另一个注册表,docker,docker-compose,docker-registry,Docker,Docker Compose,Docker Registry,我使用以下命令在docker容器中本地运行图像 docker pull locustio/locust 我的docker compose如下所示,为此我使用了docker compose up version: '3' services: locust-service: image: locustio/locust ports: - "8089:8089" volumes: - ./:/mnt/locust com
docker pull locustio/locust
我的docker compose如下所示,为此我使用了docker compose up
version: '3'
services:
locust-service:
image: locustio/locust
ports:
- "8089:8089"
volumes:
- ./:/mnt/locust
command: -f /mnt/locust/locustfile.py -H http://master:8089
我有我的卷,它是locastfile.py,它有测试我的系统的所有代码。现在,我需要将此映像与卷一起推送到另一个私有存储库中,即文件locastfile.py
如何使用docker compose push实现这一点?或者有没有其他方法可以复制该卷?上述合成文件的docker compose push似乎不起作用只能推送docker图像 如官方文档中所述,在运行映像创建容器及其卷时会生成卷 我在此报告官方文件中的示例:
docker run -d \
--name=nginxtest \
-v nginx-vol:/usr/share/nginx/html \
nginx:latest
卷通常用于保存数据,而不是应用程序代码。您应该将代码构建到派生的Docker映像中,然后可以推送该映像 您可以将此处显示的内容写入基本Dockerfile: 来自蝗虫/蝗虫的
复制hocustfile.py/mnt/hocust
#如果要向入口点传递附加选项,CMD必须是JSON数组
CMD[“-f”、“/mnt/hocust/hocustfile.py”、“-H”、”http://master:8089"]
然后,您的docker compose.yml
文件只需指定构建和运行它,而不需要复制以下任何选项:
版本:“3.8”
服务:
蝗虫服务:
生成:。
图:我的码头中心名称/蝗虫
端口:
- "8089:8089"
然后,docker compose build&&docker compose push将构建并推送图像。在目标主机上,您需要复制此docker compose.yml
文件,但删除build:
行
浏览一下蝗虫文档,这与建议的类似。您还可能会发现设置选项比命令行参数更为灵活,这样可以在Dockerfile和docker compose.yml
运行时配置之间分割选项