如何在Dockerfile本身设置断点?
搜索以上显示了有关如何在Docker容器中设置应用程序的断点的许多结果,但是我有兴趣在Dockerfile> 本身中设置一个断点,以便在断点暂停.示例Dockerfile: FROM ubuntu:20.04 RUN echo "hello" RUN echo "bye" 我正在寻找一种在RUN echo "bye"上设置断点的方法,以便当我调试此Dockerfile时,该图像将非相互互动构建到RUN echo "bye"点,独有.之后,我将能够与容器进行交互式运行命令.在我有的实际Dockerfile中,在更改构建图像的文件系统之前有RUN s,我想通过能够像能够像cd/ls/find在断点时. 解决方案 您无法设置断点本身,但是您可以在构建顺序中的任意点(在步骤之间)中获得交互式外壳. 让我们构建您的图像: Sending build context to Docker daemon 2.048kB Step 1/3 : FROM ubuntu:20
12 2024-04-03
编程技术问答社区
如何找到正在运行的Docker容器的所有图像标签?
我有一堆在服务器上运行的Docker容器,我对所有标签都使用了"最新"标签或没有标签.现在,我想冻结图像版本,但是我不知道何时绘制这些图像,所以我无法判断"最新版本"所指的版本. docker ps只是向我展示了容器使用"最新"或"没有标签",例如: # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 371d6675888b node:latest "npm start" 6 days ago Up 2 hours project_xyz_1 ca5a75425a34 selenium/node
10 2024-03-28
编程技术问答社区
如何使用Terraform将Docker图像推到Azure容器注册表中?
我是Terraform/Azure的初学者,我想使用Terraform在ACR中部署Docker映像,但无法找到Internet解决方案.因此,如果有人知道如何使用Terraform将Docker映像部署到Azure容器注册表中,请分享. 告诉我这是否可能. 解决方案 您可以使用Terraform Resource null_resource并在Terraform中执行自己的逻辑. 示例: resource "azurerm_resource_group" "rg" { name = "example-resources" location = "West Europe" } resource "azurerm_container_registry" "acr" { name = "containerRegistry1" resource_group_name = azurerm_resour
6 2024-03-23
编程技术问答社区
是否可以在AWS上为ECR图像提供参数
我构建了我会这样运行的Docker映像. docker run -e AWS_ACCESS_KEY_ID= -e AWS_SECRET_ACCESS_KEY= -it --rm -p 9000:8080 etl_pipeline:latest我主要在看-e参数.因此,在本地运行此图像时,一切都可以正常工作.但是我正在使用运行ECR图像的lambda函数运行此操作.但是,从我的S3存储桶中阅读时,我会遇到禁止错误.首先,我认为我的存储桶上的权限出了问题,但是我更改了权限,这一切都很好.但是后来我忘记了我使用这些参数运行此容器.因此,我该如何将这些参数输入我的ECR映像,或者应该更改我的Dockerfile,我的Dockerfile现在看起来像这样. ENV POETRY_VERSION=1.4.0 RUN pip install "poetry==$POETRY_VERSION" WORKDIR ${LAM
12 2024-03-22
编程技术问答社区
有什么方法可以优化Docker图像的尺寸?
我的角度应用程序在本地运行的V10.我正在尝试在Dockerfile的帮助下构建Docker图像.但是在构建图像时,我的Docker图像尺寸的建筑物构建为1.32GB.有什么方法可以减小其尺寸? 下面是我写的dockerfile # base image FROM node:12.2.0 # set working directory (also creates two folders needed for cypress) RUN mkdir /usr/src/app && mkdir /usr/src/app/cypress && mkdir /usr/src/app/cypress/plugins WORKDIR /usr/src/app # add `/usr/src/app/node_modules/.bin` to $PATH ENV PATH /usr/src/app/node_modules/.bin:$PATH # install app and ca
6 2024-02-21
编程技术问答社区
在Docker镜像名称中,Alpine、Jessie、Stretch和Buster的区别是什么?
我只是在对于每个版本,图像都归类为高山,杰西,拉伸,克星等.它们的含义是什么? 解决方案 这些是在该容器中运行的容器中的OS名称. Alpine适用于Alpine Linux,Jessie和Stretch是Debian的版本.如果您在提供的文档链接上向下滚动,您会找到一个描述Alpine的部分,以及为什么要使用它. 其他解决方案 在docker-context中,这是您需要的重要信息. Alpine url: https://alpinelinux.org/ 成像名称:alpine 矮个子:它很小. PackageManger:apk 壳:/bin/sh 尺寸:少数MB-当前标签需要2.7MB Jessie 又名Debian 8 url: https://wiki.debian.org/debianjessie 成像名称:debian:jessie shorty:不再有lts PackageManager:apt 炮弹:/bin/ba
8 2024-01-24
编程技术问答社区
如何在docker镜像中包含修改过的配置文件?
我是Docker的新手. Devop同事在GitHub存储库中创建了WSO2 Docker映像.他使用这样的图像来创建分期和生产实例. docker-compose.yml是: #openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt version: '2' services: mysql: image: mysql:5.7.10 ports: - "3306:3306" volumes: - ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d environment: - MYSQL_DATABASE=userdb - MYSQL_USER=dbwso2am - MYS
16 2023-12-15
编程技术问答社区
找到每个Docker镜像的层和层大小
出于研究目的,我正在尝试爬行公共码头注册表( https://registry.hub.docker . 但是,我研究了API和公共库以及GitHub上的详细信息,但我找不到任何方法: 检索所有公共存储库/图像(即使是成千上万的,我仍然需要一个开始列表才能迭代) 找到图像的所有层 找到一层的大小(因此不是图像,而是单个层的图像). 谁能帮助我找到一种检索此信息的方法? 编辑:是否有人能够验证docker注册表中的'*'的搜索都在返回所有存储库,而不仅仅是在任何地方提到的"*"? https://registry.hub.docker.com/search?q = = \ * 解决方案 查看潜水写在Golang. 很棒的工具! 其他解决方案 您可以首先使用: 找到图像ID $ docker images -a 然后找到图像的层及其大小: $ docker history --no-trunc 注意:我正在
34 2023-11-30
编程技术问答社区
SSLError(SSLCertVerificationError(1,'[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地签发者证书)';
嗨,我在构建Python Image 时遇到问题 错误说, > [8/9] RUN pip install -r requirements.txt: #12 9.084 Collecting azure-iot-device~=2.0.0 #12 9.262 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)'))': /packages/3f/a2/380aa87ade47fcdc8b39503bb
4 2023-11-25
编程技术问答社区
如何在docker镜像中制作一个非硬编码的URL路径来调用后端服务?
我是新手.让我描述我的场景: 我为Web应用程序制作了2个Docker图像.一个图像是前端Web层,用于演示,另一个是后端层提供休息服务. 因此,我需要为这两个图像运行2个容器.前端呼叫后端服务.现在,我需要在前端的代码中写下后端的URL并构建图像...我认为这不是微服务的正确方法... 因为如果我的笔记本电脑的IP更改或其他想使用我的映像,它们将无法获得服务...因此,我该如何使URL变量并使我的前端图像无需重建而将我的前端图像用于其他情况? thx! 解决方案 您可以在运行时通过将环境变量传递给Docker容器. 类似的东西: docker run --name frontend -e MY_APP_BACKEND_IP="192.168.7.2" -e MY_APP_BACKEND_PORT="3000" ... 在后端,假设您正在使用nodejs,您可以做: var backend_ip = process.env.MY_APP_B
30 2023-11-09
编程技术问答社区
如何在Docker镜像中打开Ubuntu GUI
我已经在Windows上的Docker中下载了Ubuntu映像. 我可以通过: 运行ubuntu docker run -it ubuntu 我只看到root,但我看不到Ubuntu Gui.如何像我们在VM中运行一样安装或配置该图像的GUI并在该GUI上运行应用程序? 解决方案 通常,使用Docker开发的方法是将IDE保留在工作站上,并使用来自来源产生的二进制图像. 您可以在 domeide.github.io/(Docker遇到IDE!) 例如: docker工具用于VisualStudio 允许在编辑和Docker进程之间进行紧密的集成. > > (但这是针对Visual Studio 2015,而不是Visual Studio代码.) 其他解决方案 fcwu/docker-ubuntu-vnc-desktop /a>提供方便的设置: sudo docker run --name ubvnc -p 6080:80 -p 59
30 2023-11-01
编程技术问答社区
按镜像名称停止docker容器-Ubuntu
在Ubuntu 14.04(可信赖的Tahr)上,我正在寻找一种停止运行容器的方法,而我唯一的信息是Docker Run命令中使用的映像名称. 是否有命令可以找到所有匹配该图像名称并停止它们的匹配的运行容器? 解决方案 如果您知道image:tag确切的容器版本 以下问题8959 ,一个好的开始是: docker ps -a -q --filter="name=" 因为name是指容器而不是图像名称,因此您需要使用更新的Docker 1.9 filter ancestor, mentioned in koekiebox's 答案. docker ps -a -q --filter ancestor= 如下所述, kiril ,删除这些容器: stop也返回容器. 所以链接stop和rm将完成工作: docker rm $(docker stop $(docker ps -a
12 2023-11-01
编程技术问答社区
如何在 gitlab-ci.yml 文件中设置 Selenium/standalone-chrome 的超时时间
如果我使用selenium/standalone-chrome image? Selenium Timeout Documentation 我的gitlab-ci.yml 以下 marked_test: image: $CONTAINER_TEST_IMAGE allow_failure: true stage: test services: - name: selenium/standalone-chrome:latest alias: chrome - name: selenium/standalone-firefox:latest alias: firefox only: refs: - main variables: - $TAG_RUN == "marked" tags: - run01_docker script: - $PYRUN -m
28 2023-10-25
编程技术问答社区
Docker加载和保存: "archive/tar: invalid tar header"
我正在尝试将Docker Image导入AWS Red Hat Linux(3.10.0-514.el7.x86_64)上的Docker,并且错误; Error processing tar file(exit status 1): archive/tar: invalid tar header 此相同的图像在我的本地计算机上以及Windows上的Boot2Docker上都可以正常工作.它很大(2.5 GB),但是我已经验证了Red Hat Linux实例上的校验和,并且与源相同. 可能是什么问题,或者我如何解决它? 解决方案 我想补充一点,由于Windows和Unix之间的Stdout行为差异,问题可能发生.因此,使用"储蓄方式"的保存方式: docker save [image] > file.tar,然后是docker load
36 2023-10-14
编程技术问答社区
在Kubernete集群中配置SSL
我在AWS中使用了两个链接. 1) https://ramhiser.com/post/2018-05-05-20-setting-up-a-kubernetes-cluster-on-aws-on-aws-in-5-minutes/ 使用此链接,我成功配置了kubernetes cluster https://codeburst.io/getting-started-with-kubernetes-deploy-a-docker-container-with-kubernetes-in-5-minutes-eb4be0e96370 使用上述链接,我成功地部署/拉动了Docker映像从ECR到群集 但是问题是我需要通过HTTPS(SSL)协议运行应用 我们在AWS ECR中有Docker Image.我们还有SSL的证书密钥文件和链文件.我们如何使用Kubernetes配置它?因此,容器将在https 中运行 现在正在运行,就像 http://ww
30 2023-09-28
编程技术问答社区
在docker构建过程中转发SSH代理
通过dockerfile构建Docker图像时,我必须克隆github repo.我将公共SSH键添加到我的Git Hub帐户中,并且可以从Docker主机中克隆回购.虽然我看到我可以在docker运行时通过映射$SSH_AUTH_SOCK env变量来使用Docker Host的SSH键. docker run --rm -it --name container_name \ -v $(dirname $SSH_AUTH_SOCK):$(dirname $SSH_AUTH_SOCK) \ -e SSH_AUTH_SOCK=$SSH_AUTH_SOCK my_image 在Docker构建过程中我该怎么做? 解决方案 docker 18.09和新的 您可以使用Docker的新功能来转发您现有的SSH代理连接或构建器的键.例如,这使您可以在构建过程中克隆您的私人存储库. 步骤: 首先使用新buildkit 的环境变量 export DOCKER_
52 2023-09-27
编程技术问答社区
Docker Run -P?/? (这两个端口号及其代表什么)
我使用命令" docker run -p 8080/8080 -name my_local_image ....",它失败了说无法找到映像'8080/8080:最新'本地'locally 8080/8080 =这两个端口准确表示什么? 解决方案 用此替换此" -p 8080/8080 ",由此" -p 8080:8080:8080 " 第一个端口:docker主机(您可以使用此端口访问您的容器),从外部.. 第二个:是您的应用程序使用的端口. 示例:我想在Docker容器中运行Tomcat服务器,Tomcat的默认端口是 8080 ,我想在端口上公开我的docker 9000 ,所以我有写: docker run -p 9000:8080 --name myTomcatContainer tomcat 因此,使用此配置,我可以使用以下方式从外部访问tomcat: http://host-ip:9000 其他解决方案 -p选项用于公开用于图像
34 2023-09-12
编程技术问答社区
本地构建的docker镜像的sha256
我如何获得已经在本地建造的Docker映像的SHA256校验和? 我想使用校验和在派生图像中注释FROM指令: FROM name@sha256:checksum 我已经尝试了docker inspect的校验和 Layers列表中的第一个和最后一个校验和均未工作. "Id"中的一个不起作用. "Parent"中的一个不起作用. "Container"中的一个不起作用. "Image"中的一个不起作用. 其中一些我只是出于绝望而尝试,最终为我的Docker映像找到了正确的校验和,但是我找不到正确的校验和.我唯一没有尝试的是,由于层数的数量,我要通过层的全部进行,以防它们以随机顺序为单位.但是把它们放在那样的时候就没有意义. 当我在派生图像不起作用的码头文件目录中运行docker build -t .时,我看到的错误是: Step 1/7 : FROM name@sha256: repository n
32 2023-08-31
编程技术问答社区
Docker。镜像的逆向工程
当我们使用Docker时,在我们的https://hub.docker.com中的公共存储库中非常容易推动和拉图像,但是此存储库仅适用于公共图像(只有一个可以是私有的). 当前可以在存储库中执行公共图像的逆向工程并读取项目的源代码? 解决方案 您可以使用docker history --no-trunc 检查图像的创建方式 更新: 检查潜水这是一个非常好的工具,允许您查看图像层. 其他解决方案 正如Yamenk所说的docker history是这样的关键. AS >破坏了,您可以使用最近的 从网站提取 请注意,该脚本仅与您本地图像中存在的图像有关 存储库(键入Docker映像时看到的内容).如果你想 为您本地存储库中不存在的图像生成dockerfile 您首先需要Docker将其拉动. 例如,您可以再次运行它,以查看代码 $ docker run --rm -v /run/docker.sock:/
32 2023-08-11
编程技术问答社区
错误: Redis连接到127.0.0.1:6379失败-连接ECONNREFUSED 127.0.0.1:6379
我正在尝试通过我的docker映像与我的redis docker映像(Mac OS X环境)之间的通信: nodejs dockerfile: FROM node:4.7.0-slim EXPOSE 8100 COPY . /nodeExpressDB CMD ["node", "nodeExpressDB/bin/www"] redis dockerfile: FROM ubuntu:14.04.3 EXPOSE 6379 RUN apt-get update && apt-get install -y redis-server nodejs代码试图连接到redis是: var redis = require('redis'); var client = redis.createClient(); docker构建步骤: docker build -t redis-docker . docker build -t node-docker .
60 2023-08-03
编程技术问答社区