Docker允许您按名称进行编辑
关于这一点,我有两个问题:
假定A(客户端)链接到B(服务),并且B的端口动态公开(即,实际主机端口由Docker确定,而不是由用户提供)。如果B停机并重新启动,会发生什么情况?
Docker是否在A上更新环境变量
Docker是否再次将同一端口分配给B
到B的A链接是否已断开
除此之外,很明显,如果两个容器都在同一台主机上运行,那么这种方法可以很好地工作。链接容器是否也跨机器边界工作
我会说:试试看;)
目前,docker无法控制进程,因为它execv
我正在使用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除外)
我试
在
有四台机器:
本地,swarm create将在其中运行
群主
swarm-agent-00
swarm-agent-01
我的理解是swarm master将控制代理,但本地用于什么?它用于使用Docker swarm映像生成发现令牌。
该标记在创建swarm master时使用
此发现服务将令牌与每个节点上运行的Docker守护进程实例相关联
因此,“本地”机器在那里确保swarm manager发现节点。其职能是:
注册:注册新节点
观察:swarm manager的回调方法
获取:
我有一个非常简单的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 compose文件,如下所示:
version: '2'
services:
registry:
restart: always
image: registry:2
ports:
- 5000:5000
environment:
REGISTRY_STORAGE: "s3"
REGISTRY_STORAGE_S3_ACCESSKEY: "yada"
REGISTRY_STORAGE_S3_S
我在Google容器引擎上有一个docker图像,上面有卷。是否有办法将文件从本地文件系统获取到附加卷?我采取了以下步骤来实现上述目标:
创建实例中应该装入卷的目录
格式化卷并将其装载到上面创建的目录中
授予目录写入权限(chmod a+w)
创建用于装入卷的fstab entry
然后,您可以使用gcloud compute copy files将文件从本地文件系统复制到卷,该卷安装在实例的目录中
我目前正在探索如何以编程方式删除docker容器中的文件/文件夹。我知道我们可以使用docker cp将文件从容器复制到主机。但是,我正在寻找类似docker mv或docker rm的东西,它允许我在docker中移动或删除文件/文件夹
场景是,我们正在用Java编写自动化测试用例,其中一个案例需要从服务器的日志文件夹复制日志文件,以断言测试用例编写的日志。我们正在使用docker cp复制日志文件。但是,它也包含旧测试用例的日志。所以我在想,我是否可以在执行测试用例之前删除日志文件。它确保我
要求:基于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 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)中的
标签: Docker
windows-server-2016
我在主机上的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 repository中的java7
我知道每个图像都有一个基本图像。我想知道docker存储库中所有Java版本的基本映像是什么?这取决于映像。有些使用Debian,有些使用Alpine。据我所知,大多数项目都是这样
您可以在DockerHub上查看DockerFile。例如,具有多个标记,DockerFile链接到它
openjdk8使用Debian Jessie。使用Alpine Linux的图像通常标有-Alpine。只需浏览DockerFile并查看一下。通过基本映
标签: Docker
windows-subsystem-for-linux
我想在Windows Docker容器中使用Bash for Windows(Linux的Windows子系统)
用例:我有一个Windows应用程序(我想将其dockerize),它还需要运行某些Linux命令
我已尝试创建启用WSL的映像:
FROM microsoft/windowsservercore
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'Sil
标签: Docker
boot2dockerdocker-machine
在我将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
我有两个Windows Nano docker容器。。。一个打开了服务,第二个是我的自动验收测试
我正在尝试向aat容器添加一个卷,以便复制测试输出
我在别的地方见过我应该用的
组合\转换\窗口\路径=1
但似乎哪儿也去不了:S
version: '3.3'
services:
fancyservice:
restart: always
image: fancyservice
aat-runner:
environment:
- FancySer
我想将ES实例从一台服务器迁移到另一台服务器(以及所有数据)
因此,接下来,我在旧服务器上创建了一个数据快照,scp“将其发送到新服务器,在新服务器上启动ES实例,恢复快照,并在新服务器上重新启动ES
问题是ES永远不会完成索引。在处理大约10个索引后,red索引的数量保持不变(我有大约300多个索引)
请注意,新的ES实例正在新服务器上的docker上运行,而旧的ES实例本机安装在旧服务器上。这太傻了,但ES快照/还原文档中并没有真正记录它
在新服务器上运行后,所有索引显示为黄色状态。所以我想
标签: Docker
permission-denieddocker-volume
我正在尝试在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
在windows上使用docker时,请遵循官方文档。
我第一次运行了标准的图像hello world,它运行得很好,还根据教程(hello world的python程序)尝试了其他图像
但几天后,当我试图再次运行这些图像时,它并没有运行,在控制台上并没有输出
若你们也能建议我在哪里查找后台发生的事情的日志,那个就太好了
以下是我正在使用的命令。
-docker images ls
-docker run hello world我重新启动了系统,每个映像都开始执行
仍然不知道导致这种情况的确切
我正在运行一组类似这样的服务:
version: '2'
services:
web:
build: ./web
ports:
- "3000:3000"
links:
- api
api:
build: ./api
links:
- db
db:
image: postgres
我想向主机的网络接口公开web服务,将主机上的端口3000绑定到容器上的端口3000。但是,我只想向内部网络公开api
在当地不适合我工作。它运行时没有错误,但在运行命令后,无法使用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集群
version: "3.2"
services:
manager:
image: busybox
networks:
- frontend
deploy:
placement:
constraints: [node.role == manager]
worker:
image: busybox
depends_on:
- manager
networks:
假设我在本地机器上有一个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的请求并返回一些响应
现在我想将这个应用程序(还有两个相关的应用程序)移动到
我希望能够通过位于的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
我正在使用Kubernetes、Jenkins、Docker Hub和我的私有SVN存储库探索CI/CD管道的实现。我正在探索Docker映像,当提交或任何SVN操作在存储库中完成时,会自动创建并推入Docker Hub
在这里的示例中,我看到了通过添加GitHub存储库代码repo链接和docker hub凭据创建一个管道作业。并在项目根文件夹中添加一个与Dockerfile位置相同的Jenkins文件。在这里,我对这种形象创作方法产生了一种怀疑
除了创建Jenkins文件和Jenkins配置
我正在尝试向现有的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.yml中定义的公共网络将docker-compose文件中定义的容器与应用程序的图像连接起来。我需要这个连接到容器主机上的数据库。
如何在另一个docker compose producer文件中定义相同的网络
还是可以
我常用的docker-compose.yml如下所示:
version: '3.3'
services:
kafka:
imag
我使用卡夫卡,zookeeper,elasticsearch,卡夫卡的3个节点,zk的3个节点
我在mac上运行docker compose.yml,
123.345.567是以下命令的输出:
ifconfig | grep 'inet 192'| awk '{ print $2}'
docker-compose.yml是
version: '2'
services:
zookeeper:
ports:
- "2181:2181"
- "2888:2888
我希望能够使用以下域名访问我的开发容器:
这就是我所做的:
我使用
这是可行的,我可以在浏览器中打开
现在我启动了一个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\
我试图安装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
我试图建立一个私人码头注册港口,这是能够存储“私人”码头图片和服务码头图片从Dockerhub码头
有没有办法让我只运行一个Harbor实例?根据您的描述,您似乎想用Harbor建立一个私有注册表,还想让Harbor覆盖代理/作为Dockhub镜像的工作,对吗
挑战在于Harbor目前不支持代理/镜像功能。您可以尝试的一个可行但不完美的解决方案是通过Harbor提供的复制功能缓存Dockhub的所有映像。这需要Harbor版本>1.9.0
从我所读到和听到的关于Docker的所有内容来看,Docker的全部目的是封装一个应用程序,使其能够在任何机器上运行。它通过将所需的环境(工具/依赖项)包装到docker映像中来实现这一点。容器是图像的一个实例。docker容器中没有运行操作系统
现在,如果这都是真的,那么为什么会存在这样的情况:?我以为docker映像只是用于应用程序,而不是整个操作系统
每当我实例化该图像时,我都会得到一个容器,当连接到该容器时,它似乎是一个正常工作的CentOS shell
你可以自己做,看看我的意思:
我已经与Docker for Windows合作了大约一年,但我仍然没有很好地掌握何时应该使用不同的图像、它们之间的关系以及其中的窗口组件
关于此链接:
有四种“特色回购”:
windows/servercore
windows/nanoserver
windows/IoCore
窗户
我知道windows/servercore应该包含比nanoserver更多的东西,但这些东西到底是什么?为什么有些程序在servercore中工作而不是在nanoserver中工作?是否有某种方法可以找到
我有一个docker映像,需要传播到更高的环境。因此,我需要从当前图像创建另一个图像,唯一的区别是配置文件。我想知道是否有一种简单的方法可以使用Jenkins docker管道来完成
stage('Build Image') {
steps {
script{
docker.image('${env.IMG_NM}:${env.IMG_TAG}').inside {
其次,为了将容器映像部署到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
Docker使用较新的--mount参数创建卷。这里,key=value对指定卷选项。我对参数类型特别感兴趣
束缚
卷
tmpfs
当我使用Docker时,Docker创建了哪种类型(我如何指定它?)
Dockerfile
VOLUME /etc/nginx
我想看看docker volume ls
/etc/nginx
然后我可以使用另一个带有--from volume的容器来访问它。我错过了什么
文档仅说明启动容器时必须指定装入点
主机目录在容器运行时声明:主机目录(挂载点)本质上依赖
在docker之前:
我曾经构建发布位并对其运行一组测试。这些位从单元测试到Comp、Functional、E2E等进行测试
与docker:
1) 我有一个CI管道来测试比特,但是。。。
2) 使用Docker文件,我同时构建并在图像上推送位。因此,考虑到非确定性构建系统这就是风险。。我有没有办法写Dockerfile来解决这个问题,或者你的方法是什么
我使用的.net core的Dockerfile作为示例:
COPY . .
COPY /service /src/service
RUN
mysql服务器运行在带有Ubuntu操作系统的docker之上。
我只想允许来自Ubuntu主机的DB连接,出于安全原因,不允许来自世界其他地方的所有连接。只要不向世界公开端口,那么只有Docker网络中的容器才能连接到mysql容器。如果web服务器没有在Docker中运行,该怎么办?但它们都运行在同一台VPS服务器上?无论web服务器运行在何处,如果您的mysql容器未将端口暴露给外部,则其他地方无法访问它。您可以尝试从主机操作系统(运行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 run -d -p 5000:5000 --restart=always -v $HOME/registry:/var/lib/registry registry:2
我用它在本地提供图像漏洞/web-dvwa
如果存在较新版本的易受攻击软件/web-dvwa图像,该私有注册表是否有办法自动检测和下载
换句话说,检查Docker Hub并与我的存储库中的版本进行比较,然后从中更新存储库?我不知道有哪个软件会自动执行此操作,但它可能可以使用与
我是docker的新手,我想在我的主机(Windows10 usign docker for windows)上部署一个docker私有注册表,并具有用户权限,因此我使用TLS根据
我部署了docker私有注册表,要推送用户,必须执行docker登录命令
现在,我想将UI连接到我的私有注册表,并将其设置为只读,以便能够拉入,为此,我尝试设置了Harbor、Portus和许多其他示例,但没有针对windows的文档。
我试着使用这个项目,但都是一样的
所有这些项目都在卷docker run-v p
我正在尝试获取我的进程的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
我有一个web应用程序在9000端口的docker容器中运行。我需要将流量路由到同一网络中另一个容器中的Nginx,以便在端口80访问它。我如何做到这一点?我尝试构建一个Nginx映像并添加了Nginx.conf。但我的Nginx容器在运行后立即停止
您需要将内部端口表单容器绑定到主机,如:
docker run -d \
--network=randon_name \
-p 80:80 \ # <host>:<containerPort>
我在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.
我在Kubernetes上部署了swagger UI。现在,当点击试用按钮时,它不会向Kubernetes的内部服务发送请求
由于所有服务都在Kubernetes本地运行,我们必须使用HTTP,但我的招摇过市用户界面是在HTTPS上,因此也会出现混合内容错误
我们是否可以使用Kubernetes内部运行的swagger UI调用内部服务
这是我的演示版swagger.yaml:
openapi: 3.0.1
servers:
- url: '{scheme}://test-service'
标签: Docker
docker-swarmdocker-swarm-mode
我有一个docker swarm集群,masters在6个AWS实例上运行,在一些测试中,我们意外终止了3个实例(运行masters)。现在swarm状态似乎不起作用,产生如下错误:
错误:rpc错误:代码=未知描述=群没有领导者。在线的经理可能太少了。确保半数以上的经理在线
我尝试通过docker命令删除终止的管理器,但无论我执行什么命令,如docker node ls或其他命令,都会产生与上述相同的错误。我还尝试添加新节点,但添加到swarm时会产生相同的错误
当我在其中一个管理器中发布do
我有一个service-a,任务定义为task-a,包含多个容器定义,例如nginx和grafana。这些容器如何相互通信?使用的网络是默认的网桥网络
我尝试了curl-grafana:3000,但容器无法解析名称。如果我在我的本地机器上尝试同样的方法,它会工作的我错过了什么?
以下是我的任务定义:
resource "aws_ecs_task_definition" "this" {
family = "x"
executio
在我的mac电脑中,我在docker应用程序中有仪表板菜单,当我的图像大量增加时,我通常会通过这个应用程序清除我的整个docker环境来重置docker
我通常打开docker->dashboard->移动到Troublhot->清理/清除数据,
瞧,所有的图像、容器、卷、网络都是干净的
我有时使用其他命令,如docker system prune all,但它做的比清除/清除上面的数据少
有没有人能向我解释一下docker purge/clean data的作用,这样我就可以创建bash文件,
标签: Docker
azure-web-app-serviceazure-container-registry
我已经设置了一个Azure应用程序服务(Linux)发布方法,并设置了相应的管道来构建和部署我的代码(nodejs)。
现在我需要对运行我的代码的主机进行更多的控制(需要poppler)。在dev+测试中,我创建了新的应用程序服务,并选择Docker容器作为发布方法
我的问题:对于我的PROD实例,是否可以更改现有应用程序服务的发布方法,还是必须创建新的应用程序服务?
假设是后者,我需要更新客户端以指向新的应用程序服务URL。为了避免这种情况,我是否可以先删除现有的应用程序服务并创建一个同名的新
我的虚拟机是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()script的docker构建步骤设置另一个标记
到目前为止,我有:
docker.build("artifactory/docker/${IMAGE_NAME}:${BUILD_NO}")
然后
rtDockerPush(
serverId: "Artifactory",
image: "artifactory/docker/${IMAGE_NAME}:${BUILD_NO}&
我正在将我的ktor应用程序部署到docker,但遇到问题。当我在本地运行服务器时,该应用程序运行正常,但当我将其部署到docker时,.jar文件会出现以下错误请尝试从openjdk:8-jre-alpine添加,在Dockerfile顶部添加Application.kt文件?谢谢@AlekseiTirman。如果您的问题很可能与HikariCP有关,我将非常感谢您的帮助。我在这里发现了类似堆栈跟踪的问题。谢谢。让我继续挖掘北斗七星。抱歉,我在发布时使用了它。我的代码中已经有了它。