在Docker中链接容器

Docker允许您按名称进行编辑 关于这一点,我有两个问题: 假定A(客户端)链接到B(服务),并且B的端口动态公开(即,实际主机端口由Docker确定,而不是由用户提供)。如果B停机并重新启动,会发生什么情况? Docker是否在A上更新环境变量 Docker是否再次将同一端口分配给B 到B的A链接是否已断开 除此之外,很明显,如果两个容器都在同一台主机上运行,那么这种方法可以很好地工作。链接容器是否也跨机器边界工作 我会说:试试看;) 目前,docker无法控制进程,因为它execv

Docker Mesos集群的领导人选举似乎不起作用

我正在使用docker设置Mesos集群(ZooKeeper+Mesos),其中3个节点(A、B、C)分别运行ZooKeeper和主/从容器 节点B&C相互重定向(quorum=2) 当我运行Mesos主容器并打开Mesos Web UI时 节点A看起来像一个主节点 节点B重定向到节点C 节点C重定向到节点B 奇怪的是,节点A是孤立的,节点B和节点C永远互相重定向 这里发生了什么事? Mesos Master的docker run命令如下所示。 (3个节点相同,但MESOS_IP除外) 我试

Docker 你能解释一下swarm机器的作用吗?

在 有四台机器: 本地,swarm create将在其中运行 群主 swarm-agent-00 swarm-agent-01 我的理解是swarm master将控制代理,但本地用于什么?它用于使用Docker swarm映像生成发现令牌。 该标记在创建swarm master时使用 此发现服务将令牌与每个节点上运行的Docker守护进程实例相关联 因此,“本地”机器在那里确保swarm manager发现节点。其职能是: 注册:注册新节点 观察:swarm manager的回调方法 获取:

Docker SCRATCH容器罐';找不到文件

我有一个非常简单的dockerfile: FROM scratch MAINTAINER "aosmith" <a..h@...com> EXPOSE 6379 ADD redis-server /redis-server ENTRYPOINT ["/redis-server"] 我尝试了各种组合的CMDEXECADD和COPY,但运气不佳 我从源代码构建redis,如下所示: make CFLAGS="-static" EXEEXT="-static" \ MALLOC=libc

Docker 上传/推送数据到Google云卷

我在Google容器引擎上有一个docker图像,上面有卷。是否有办法将文件从本地文件系统获取到附加卷?我采取了以下步骤来实现上述目标: 创建实例中应该装入卷的目录 格式化卷并将其装载到上面创建的目录中 授予目录写入权限(chmod a+w) 创建用于装入卷的fstab entry 然后,您可以使用gcloud compute copy files将文件从本地文件系统复制到卷,该卷安装在实例的目录中

以编程方式删除docker容器中的文件/文件夹

我目前正在探索如何以编程方式删除docker容器中的文件/文件夹。我知道我们可以使用docker cp将文件从容器复制到主机。但是,我正在寻找类似docker mv或docker rm的东西,它允许我在docker中移动或删除文件/文件夹 场景是,我们正在用Java编写自动化测试用例,其中一个案例需要从服务器的日志文件夹复制日志文件,以断言测试用例编写的日志。我们正在使用docker cp复制日志文件。但是,它也包含旧测试用例的日志。所以我在想,我是否可以在执行测试用例之前删除日志文件。它确保我

“如何调试”;WSREP:SST失败:1(不允许操作)";在Docker有一个MariaDB Galera集群?

要求:基于CentOS的Docker容器提供MariaDB 10.x Galera群集 主机环境:OX El Capitan 10.11.6,Docker 1.12.5(14777) Docker容器操作系统:CentOS Linux 7.3.1611版(核心版) DB:10.1.20-1 我发现,但是文档似乎过时了,启动集群的命令不起作用。在编写映像时,使用了wsrep\u sst\u method=rsync,因此我认为以下命令应该可以工作(在主机上用空目录替换/Users/Me/somed

Docker 为什么卡夫卡经纪人与自身相连?

几天前,我尝试使用Docker Compose和端口映射配置Kafka Docker容器,并发现了一些我不完全理解的有趣行为: 卡夫卡经纪人似乎与自己有联系。为什么? 我的设置是: Ubuntu 14.04,Docker 1.13.1,Docker Compose 1.5.2 Kafka 0.10侦听端口9092,该端口由容器公开 在Docker Compose中,我有从容器端口9092到本地端口4005的端口映射 我在advised.listeners(Docker host:4005)中的

为什么';运行此命令时,Windows Server中的docker卷是否显示?

我在主机上的c:\testvol上设置了一个文件夹。 docker映像在c:\testvol中没有文件夹 当我跑步时: docker run --rm -d --name {name} {imagename} --v c:\testvol:c:\testvol 为什么该卷没有显示在容器上?它出现在docker命令中,您需要指定图像名称作为最后一个参数,除非您希望传递docker文件要处理的参数 此外,-v应为-v或--volume,因为docker命令无法识别--v 您需要的命令是: dock

Docker java的基本映像

我将使用docker repository中的java7 我知道每个图像都有一个基本图像。我想知道docker存储库中所有Java版本的基本映像是什么?这取决于映像。有些使用Debian,有些使用Alpine。据我所知,大多数项目都是这样 您可以在DockerHub上查看DockerFile。例如,具有多个标记,DockerFile链接到它 openjdk8使用Debian Jessie。使用Alpine Linux的图像通常标有-Alpine。只需浏览DockerFile并查看一下。通过基本映

Docker Windows容器中的WSL

我想在Windows Docker容器中使用Bash for Windows(Linux的Windows子系统) 用例:我有一个Windows应用程序(我想将其dockerize),它还需要运行某些Linux命令 我已尝试创建启用WSL的映像: FROM microsoft/windowsservercore SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'Sil

无法从docker hub中提取我的私人映像

在我将docker从1.8.2-el7升级到1.12.6版后,它无法从docker hub中提取我的私有映像 我可以执行列表图像命令 sudo docker -H tcp://test-app01.local:2376 images REPOSITORY TAG IMAGE ID CREATED SIZE account/image1 tag1 a4c28

Docker Compose:卷不在Windows Nano上工作

我有两个Windows Nano docker容器。。。一个打开了服务,第二个是我的自动验收测试 我正在尝试向aat容器添加一个卷,以便复制测试输出 我在别的地方见过我应该用的 组合\转换\窗口\路径=1 但似乎哪儿也去不了:S version: '3.3' services: fancyservice: restart: always image: fancyservice aat-runner: environment: - FancySer

elasticsearch Elasticsearch永远不会完成索引

我想将ES实例从一台服务器迁移到另一台服务器(以及所有数据) 因此,接下来,我在旧服务器上创建了一个数据快照,scp“将其发送到新服务器,在新服务器上启动ES实例,恢复快照,并在新服务器上重新启动ES 问题是ES永远不会完成索引。在处理大约10个索引后,red索引的数量保持不变(我有大约300多个索引) 请注意,新的ES实例正在新服务器上的docker上运行,而旧的ES实例本机安装在旧服务器上。这太傻了,但ES快照/还原文档中并没有真正记录它 在新服务器上运行后,所有索引显示为黄色状态。所以我想

使用卷保存docker日志文件会导致权限被拒绝

我正在尝试在playing中保存docker容器的日志文件,其中提供了一个安装了docker的linux根shell。I'v提供的二手解决方案: 这是我在控制台中得到的: docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"root

没有来自任何";的控制台输出;docker run“;调用

在windows上使用docker时,请遵循官方文档。 我第一次运行了标准的图像hello world,它运行得很好,还根据教程(hello world的python程序)尝试了其他图像 但几天后,当我试图再次运行这些图像时,它并没有运行,在控制台上并没有输出 若你们也能建议我在哪里查找后台发生的事情的日志,那个就太好了 以下是我正在使用的命令。 -docker images ls -docker run hello world我重新启动了系统,每个映像都开始执行 仍然不知道导致这种情况的确切

如何向内部docker网络公开我的服务?

我正在运行一组类似这样的服务: version: '2' services: web: build: ./web ports: - "3000:3000" links: - api api: build: ./api links: - db db: image: postgres 我想向主机的网络接口公开web服务,将主机上的端口3000绑定到容器上的端口3000。但是,我只想向内部网络公开api

无法使用minikube docker守护程序

在当地不适合我工作。它运行时没有错误,但在运行命令后,无法使用docker命令。我在windows 10上使用git bash时使用了: $ kubectl version Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.6", GitCommit:"6260bb08c46c31eea6cb538b34a9ceb3e406689c", GitTreeState:"clean", BuildDate:"2017

Docker swarm和节点上的ipv6

我有docker集群 version: "3.2" services: manager: image: busybox networks: - frontend deploy: placement: constraints: [node.role == manager] worker: image: busybox depends_on: - manager networks:

Docker Kubernetes吊舱与内部/外部IP地址相互通信

假设我在本地机器上有一个Python代码,它监听localhost和端口8000,如下所示: import waitress app = hug.API(__name__) app.http.add_middleware(CORSMiddleware(app)) waitress.serve(__hug_wsgi__, host='127.0.0.1', port=8000) 此代码接受关于127.0.0.1:8000的请求并返回一些响应 现在我想将这个应用程序(还有两个相关的应用程序)移动到

设置对nginx docker容器的https访问

我希望能够通过位于的https访问nginx docker容器。到目前为止,我已经做了以下工作: Dockerfile: FROM nginx COPY certs/nginx-selfsigned.crt /etc/ssl/certs/ COPY certs/nginx-selfsigned.key /etc/ssl/private/ COPY default-ssl.conf /etc/nginx/sites-available/default EXPOSE 443 我在文件夹cer

在Jenkins中通过shell脚本而不是使用Jenkins文件创建Docker图像的可行性

我正在使用Kubernetes、Jenkins、Docker Hub和我的私有SVN存储库探索CI/CD管道的实现。我正在探索Docker映像,当提交或任何SVN操作在存储库中完成时,会自动创建并推入Docker Hub 在这里的示例中,我看到了通过添加GitHub存储库代码repo链接和docker hub凭据创建一个管道作业。并在项目根文件夹中添加一个与Dockerfile位置相同的Jenkins文件。在这里,我对这种形象创作方法产生了一种怀疑 除了创建Jenkins文件和Jenkins配置

使用dotnet:2.1-sdk在docker容器中生成dotnet失败

我正在尝试向现有的ASP.NET Core 2.1 web应用程序添加docker支持。它在执行dotnet build命令时失败,表示无法加载共享库kernel32.dll和libkernel32.dll。我有下面的Dockerfile FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app EXPOSE 80 FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src C

通过共享网络连接docker compose文件

我有单独的docker compose文件,带有常见配置和应用程序配置。我想通过docker-compose.yml中定义的公共网络将docker-compose文件中定义的容器与应用程序的图像连接起来。我需要这个连接到容器主机上的数据库。 如何在另一个docker compose producer文件中定义相同的网络 还是可以 我常用的docker-compose.yml如下所示: version: '3.3' services: kafka: imag

Docker Mac,为什么可以';我不能按域访问我的容器吗?

我希望能够使用以下域名访问我的开发容器: 这就是我所做的: 我使用 这是可行的,我可以在浏览器中打开 现在我启动了一个DNS容器:docker run-d——名称DNS-p53:53-p53:53/udp——network和yshinn/dnsmasq:2.76-k-d 我将127.0.0.1添加到DNS服务器 从DNS容器内部ping到site1.dev有效 但是从容器外部ping到site1.dev不起作用 ping:无法解析site1.dev:未知主机 我遗漏了什么?编辑您的\etc\

Docker 安装rexray/ebs时出错

我试图安装rexray/ebs插件安装成功, 但是在安装之后出现了一些错误 Docker版本 Server: Docker Engine - Community Engine: Version: 18.09.1 API version: 1.39 (minimum version 1.12) 注 我的Accesskey和Screcetkey工作正常,我已经检查过了。您是否设法使其工作正常? # docker plugin install rexray

是否可以运行一个habor实例,该实例接受dockerhub的私有映像和代理映像的推送请求?

我试图建立一个私人码头注册港口,这是能够存储“私人”码头图片和服务码头图片从Dockerhub码头 有没有办法让我只运行一个Harbor实例?根据您的描述,您似乎想用Harbor建立一个私有注册表,还想让Harbor覆盖代理/作为Dockhub镜像的工作,对吗 挑战在于Harbor目前不支持代理/镜像功能。您可以尝试的一个可行但不完美的解决方案是通过Harbor提供的复制功能缓存Dockhub的所有映像。这需要Harbor版本>1.9.0

CentOS Docker形象的目的是什么?

从我所读到和听到的关于Docker的所有内容来看,Docker的全部目的是封装一个应用程序,使其能够在任何机器上运行。它通过将所需的环境(工具/依赖项)包装到docker映像中来实现这一点。容器是图像的一个实例。docker容器中没有运行操作系统 现在,如果这都是真的,那么为什么会存在这样的情况:?我以为docker映像只是用于应用程序,而不是整个操作系统 每当我实例化该图像时,我都会得到一个容器,当连接到该容器时,它似乎是一个正常工作的CentOS shell 你可以自己做,看看我的意思:

所有官方windows docker图像是如何关联的?

我已经与Docker for Windows合作了大约一年,但我仍然没有很好地掌握何时应该使用不同的图像、它们之间的关系以及其中的窗口组件 关于此链接: 有四种“特色回购”: windows/servercore windows/nanoserver windows/IoCore 窗户 我知道windows/servercore应该包含比nanoserver更多的东西,但这些东西到底是什么?为什么有些程序在servercore中工作而不是在nanoserver中工作?是否有某种方法可以找到

詹金斯&x2B;Docker:从Docker.inside()提交更改

我有一个docker映像,需要传播到更高的环境。因此,我需要从当前图像创建另一个图像,唯一的区别是配置文件。我想知道是否有一种简单的方法可以使用Jenkins docker管道来完成 stage('Build Image') { steps { script{ docker.image('${env.IMG_NM}:${env.IMG_TAG}').inside {

Docker 如何管理kubernetes服务部署的部署配置(yaml文件)

其次,为了将容器映像部署到kubernetes,我们通常会进行部署配置(yaml文件) 现在,对于暂存和开发环境,这些可能会有所不同。随着一些新特性的出现,可能会出现一些系统环境变量,这些变量需要出现在yaml中 我的问题是 1. How yaml are managed , for example , manual efforts required if these is some change in yaml . 2. How it can be made automated . 使用k

Dockerfile卷指令创建的卷类型是什么?

Docker使用较新的--mount参数创建卷。这里,key=value对指定卷选项。我对参数类型特别感兴趣 束缚 卷 tmpfs 当我使用Docker时,Docker创建了哪种类型(我如何指定它?) Dockerfile VOLUME /etc/nginx 我想看看docker volume ls /etc/nginx 然后我可以使用另一个带有--from volume的容器来访问它。我错过了什么 文档仅说明启动容器时必须指定装入点 主机目录在容器运行时声明:主机目录(挂载点)本质上依赖

什么是Dockerfile;“正确的方法”;为了生产?

在docker之前: 我曾经构建发布位并对其运行一组测试。这些位从单元测试到Comp、Functional、E2E等进行测试 与docker: 1) 我有一个CI管道来测试比特,但是。。。 2) 使用Docker文件,我同时构建并在图像上推送位。因此,考虑到非确定性构建系统这就是风险。。我有没有办法写Dockerfile来解决这个问题,或者你的方法是什么 我使用的.net core的Dockerfile作为示例: COPY . . COPY /service /src/service RUN

Docker 我怎样才能禁止外部连接到停靠的mysql?

mysql服务器运行在带有Ubuntu操作系统的docker之上。 我只想允许来自Ubuntu主机的DB连接,出于安全原因,不允许来自世界其他地方的所有连接。只要不向世界公开端口,那么只有Docker网络中的容器才能连接到mysql容器。如果web服务器没有在Docker中运行,该怎么办?但它们都运行在同一台VPS服务器上?无论web服务器运行在何处,如果您的mysql容器未将端口暴露给外部,则其他地方无法访问它。您可以尝试从主机操作系统(运行Docker)访问容器。如果您还想确保您的服务器受到

Docker 找不到通过“在脚本之前运行”属性中的脚本来设置作业或多个作业的变量的方法

我想将.sh文件中的值显示到.gitlab-ci.yml中,但找不到解决方案。 PS:我不想在.yml文件中使用环境变量 My versions.sh文件如下所示: export PROJECT_VERSION = 2.1.25 My.gitlab-ci.yml如下所示: before_script: - ./versions.sh my_build_job: - script: - 'echo "PROJECT_VERSION = $(PROJECT_VERSION)"'

Docker 专用注册表自动下载

假设我创建了Docker私有注册表 # docker run -d -p 5000:5000 --restart=always -v $HOME/registry:/var/lib/registry registry:2 我用它在本地提供图像漏洞/web-dvwa 如果存在较新版本的易受攻击软件/web-dvwa图像,该私有注册表是否有办法自动检测和下载 换句话说,检查Docker Hub并与我的存储库中的版本进行比较,然后从中更新存储库?我不知道有哪个软件会自动执行此操作,但它可能可以使用与

如何在具有web界面的windows上部署Docker本地注册表开源并管理用户权限?

我是docker的新手,我想在我的主机(Windows10 usign docker for windows)上部署一个docker私有注册表,并具有用户权限,因此我使用TLS根据 我部署了docker私有注册表,要推送用户,必须执行docker登录命令 现在,我想将UI连接到我的私有注册表,并将其设置为只读,以便能够拉入,为此,我尝试设置了Harbor、Portus和许多其他示例,但没有针对windows的文档。 我试着使用这个项目,但都是一样的 所有这些项目都在卷docker run-v p

Docker 有没有办法在pod内获得进程的stacktrace?

我正在尝试获取我的进程的stacktrace,该进程正在k8s的pod中运行。为此,我在其中安装了gstack二进制文件,但它没有给我任何输出 以下是示例演示: sh-4.3# gstack Usage: gstack <process-id> sh-4.3# sleep 100 & [2] 1594 sh-4.3# gstack 1594 sh-4.3# gstack 1594 > test sh-4.3# cat test sh-4.3# sh-4.3#gstac

我正在尝试使用freestyle项目为laravel hello world项目设置jenkins docker gitlab管道

我有一个web应用程序在9000端口的docker容器中运行。我需要将流量路由到同一网络中另一个容器中的Nginx,以便在端口80访问它。我如何做到这一点?我尝试构建一个Nginx映像并添加了Nginx.conf。但我的Nginx容器在运行后立即停止 您需要将内部端口表单容器绑定到主机,如: docker run -d \ --network=randon_name \ -p 80:80 \ # <host>:<containerPort>

Docker容器NoRouteToHostException:无法访问主机

我在CentOS-8上,有两个spring引导服务:演示客户端通过SpringRESTTemplate通过HTTP调用演示服务器。这在没有Docker容器的情况下运行良好。 但当我使用默认网络将它们部署为docker compose时,演示客户端无法调用演示服务器。我尝试了使用服务名称和容器的ip地址,但在这两种情况下都出现了相同的错误: demo-client_1 | 2020-02-29 10:23:55.165 ERROR 1 --- [nio-8082-exec-1] o.a.c.c.

Docker 大摇大摆的用户界面在kubernetes内部试用

我在Kubernetes上部署了swagger UI。现在,当点击试用按钮时,它不会向Kubernetes的内部服务发送请求 由于所有服务都在Kubernetes本地运行,我们必须使用HTTP,但我的招摇过市用户界面是在HTTPS上,因此也会出现混合内容错误 我们是否可以使用Kubernetes内部运行的swagger UI调用内部服务 这是我的演示版swagger.yaml: openapi: 3.0.1 servers: - url: '{scheme}://test-service'

Docker 从swarm中删除终止的实例(管理器),并恢复swarm状态

我有一个docker swarm集群,masters在6个AWS实例上运行,在一些测试中,我们意外终止了3个实例(运行masters)。现在swarm状态似乎不起作用,产生如下错误: 错误:rpc错误:代码=未知描述=群没有领导者。在线的经理可能太少了。确保半数以上的经理在线 我尝试通过docker命令删除终止的管理器,但无论我执行什么命令,如docker node ls或其他命令,都会产生与上述相同的错误。我还尝试添加新节点,但添加到swarm时会产生相同的错误 当我在其中一个管理器中发布do

Docker AWS ECS中同一任务的容器之间如何通信?

我有一个service-a,任务定义为task-a,包含多个容器定义,例如nginx和grafana。这些容器如何相互通信?使用的网络是默认的网桥网络 我尝试了curl-grafana:3000,但容器无法解析名称。如果我在我的本地机器上尝试同样的方法,它会工作的我错过了什么? 以下是我的任务定义: resource "aws_ecs_task_definition" "this" { family = "x" executio

docker清除/清理数据的作用是什么?

在我的mac电脑中,我在docker应用程序中有仪表板菜单,当我的图像大量增加时,我通常会通过这个应用程序清除我的整个docker环境来重置docker 我通常打开docker->dashboard->移动到Troublhot->清理/清除数据, 瞧,所有的图像、容器、卷、网络都是干净的 我有时使用其他命令,如docker system prune all,但它做的比清除/清除上面的数据少 有没有人能向我解释一下docker purge/clean data的作用,这样我就可以创建bash文件,

是否可以将应用程序服务的发布方法从代码转换为Docker?

我已经设置了一个Azure应用程序服务(Linux)发布方法,并设置了相应的管道来构建和部署我的代码(nodejs)。 现在我需要对运行我的代码的主机进行更多的控制(需要poppler)。在dev+测试中,我创建了新的应用程序服务,并选择Docker容器作为发布方法 我的问题:对于我的PROD实例,是否可以更改现有应用程序服务的发布方法,还是必须创建新的应用程序服务? 假设是后者,我需要更新客户端以指向新的应用程序服务URL。为了避免这种情况,我是否可以先删除现有的应用程序服务并创建一个同名的新

从iso和apt重复安装docker 问题

我的虚拟机是ubuntu,docker是从iso安装ubuntu时安装的。之后,我又从apt安装了一次,因为前一个并没有在“systemctl”中注册。现在,两个docker都有两个空间,如下所示 两个docker有自己的“docker ps/image CMD”空间 重新启动,从“SPACE docker A”开始,“systemctl status”工作正常。一旦“systemctl restart”,移动到“SPACE docker B” 如果我想删除“太空码头工人A”。我怎么做?如有任何

Jenkins管道中的docker.build()带有两个标记

如何为Jenkins管道中使用docker.build()script的docker构建步骤设置另一个标记 到目前为止,我有: docker.build("artifactory/docker/${IMAGE_NAME}:${BUILD_NO}") 然后 rtDockerPush( serverId: "Artifactory", image: "artifactory/docker/${IMAGE_NAME}:${BUILD_NO}&

将我的ktor应用程序部署到docker时运行.jar文件时出现问题

我正在将我的ktor应用程序部署到docker,但遇到问题。当我在本地运行服务器时,该应用程序运行正常,但当我将其部署到docker时,.jar文件会出现以下错误请尝试从openjdk:8-jre-alpine添加,在Dockerfile顶部添加Application.kt文件?谢谢@AlekseiTirman。如果您的问题很可能与HikariCP有关,我将非常感谢您的帮助。我在这里发现了类似堆栈跟踪的问题。谢谢。让我继续挖掘北斗七星。抱歉,我在发布时使用了它。我的代码中已经有了它。