我已经开始使用docker for dev,并进行了以下设置:
主机-ubuntu服务器
Docker容器-带tomcat服务器的webapp(使用https)
就主机容器访问而言,一切正常。
但是,我无法从远程计算机访问容器的webapp(尽管仍在同一网络中)
跑步时
docker port <container-id> 443
docker端口443
输出和预期的一样,所以docker的端口绑定看起来不错
172.16.*.*:<random-port>
1
显然,应用程序打包和部署似乎有两种做法
创建并部署docker映像
从头开始构建和部署应用程序
我对如何使用选项1)感到困惑。前提是你需要一个docker图像并在任何平台上重复使用它。但是,在实践中,这是一个可行的解决方案,因为环境通常具有特定于平台和应用程序的配置?我的测试环境中的docker映像无法部署到产品中,因为它包含模拟和测试级配置。将应用程序打包为docker映像的想法是将所有外部/系统配置嵌入到应用程序本身中。i、 e:外部引擎的任何特定版本,如java或ruby;系统中的基本GN
我有一份文件。生成映像时,生成因以下错误而失败:
automake: error: no 'Makefile.am' found for any configure output
Error build: The command [/bin/sh -c aclocal && autoconf && automake -a] returned a non-zero code: 1
这实际上是无害的。该库构建良好,但Docker在收到此错误后停止构建。有什么办法可以
我正在docker容器中运行简单的web应用程序(node.js)。应用程序在主机8080上公开的本地端口5000上侦听。我想运行自动测试,它将在主机上运行,并向我的应用程序发出HTTP请求。问题是,当我使用docker run启动应用程序时,我不知道应用程序何时准备就绪(当它开始在主机上的8080端口上侦听时)。我可以使用简单的超时,这将足够长,以确保容器启动,应用程序开始侦听请求,但也许有一种更聪明的方法来做到这一点
我还使用了docker compose,我想知道它是如何知道容器已经“准
我刚刚完成了有史以来第一次Docker部署,当我运行此命令以查看最近进程的状态时
docker ps-a
我得到这个输出
我的问题是,;这些名称指的是什么?这些是为您正在运行的每个容器生成的随机名称。
你可以在网站上看到这些名字
您可以通过添加来固定名称
2013年10月,docker 0.6.5引入了这种做法:
为docker run添加-name
删除docker链接
不要将容器id添加为默认名称
如果在运行时未指定,请创建自动生成的容器名称
在docker 0.7中改进了该做法,包括:
使用docker remote API,我们可以获得以下信息:
{
"name": "root",
"size": 4096,
"mode": 2147484096,
"mtime": "2014-02-27T20:51:23Z",
"linkTarget": ""
}
但是docker文档没有提供关于响应中各个字段的任何信息。
我特别想知道“模式”和“链接目标”字段指定了什么
非常感谢任何指针。这来自
这意味着:
模式来自
FileMode表示文件
我目前正在创建自己的docker映像,并尝试将USB摄像头设备注入我的docker容器中。在寻找了很多不同的答案后,我终于做到了
docker run -p 80:80 -v /dev/usb/bus:/dev/bus/usb -t kerberosio
当我在OSX上工作并使用docker machine时,我将USB设备转发到我的VM中,安装了usbutils,结果就是:docker映像可以看到我的USB设备
# lsusb -t
/: Bus 01.Port 1: Dev 1, Cla
我有一个运行带有nginx的静态html的docker compose示例
目录树:
├── docker-compose.yml
├── nginx
│ ├── app
│ │ └── index.html
│ └── Dockerfile
docker compose.yml
nginx:
build: ./nginx
volumes:
- ./nginx/app:/usr/share/nginx/html
ports:
- 8080:80
n
我试图使用JMX访问在docker容器中运行的应用程序
这类似于docker映像内的端口映射到映像外的相同端口时,该解决方案也会起作用。但是,有时我想将端口映射到另一个端口
我正在托管应用程序中设置这些属性
-Dcom.sun.management.jmxremote.port=9832
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.
从该容器创建图像无效。在我添加from centos部件之前,它就已经工作了,但现在当我删除它并尝试创建容器时,容器创建不起作用……但图像创建起作用
我不知道如何调试这个。任何帮助都将不胜感激
FROM centos:7
RUN yum -y install epel-release; yum clean all
RUN yum -y install python-pip; yum clean all
#RUN pip install jupyter
#RUN pip install nbc
另外,请让我知道是否有任何格式化yml文件的工具,以便我可以轻松修改
my.yml:
docker-compose -f my.yml up
如果确实存在空格,则您提供的YAML不会生成错误。因此,请检查YAML中的制表符或其他隐藏字符
version: '2'
services:
ubuntupgcsstateless:
image: ubuntupgstatelesscsimage
environment:
- EXTERNAL_IP=10.31.86.16
我在Windows 10上的Hyper-V中遇到一些问题。现在一切似乎都解决了,但是,当我尝试启动docker服务时,出现以下错误:
服务无法启动。System.TypeLoadException:无法加载
从程序集中键入“Docker.Backend.ITimeIntegrationService”
'Docker.Backend,版本=1.12.5.9503,区域性=中性,
PublicKeyToken=null.。
在Docker.Service.DockerService.DoRun()
在使用docker时,我试图避免使用缓慢的osxfs。所以我正在运行docker sync卷容器
我只想将此卷的子目录装入另一个容器
当前示例错误:
docker: Error response from daemon: create docker-sync/www/marcopolo.front: "docker-sync/www/marcopolo.front" includes invalid characters for a local volume name, only "[a-zA
我使用docker,所以在生产模式下,我使用URL为“”的链接容器
而不是处于开发模式时的“”
我希望能够使用“”if“ng build-prod”,并在开发时使用“localhost”
如何执行if(“-prod”)
谢谢你阅读我的文章,我希望我的问题是清楚的
编辑:一切都在environment.ts的评论中解释
您有environments/environment.ts,还有一个json
export const environment = {
production = false
我试图在centos docker上运行iscsid。但是命令失败,出现“致命:无法加载/lib/modules/4.9.13-moby/modules.dep:没有这样的文件或目录”
Docker正在开始使用
msingh$ docker run -it cent6 bash
码头工人内部的信息
[root@7627d06541cc opt]# uname -a
Linux 7627d06541cc 4.9.13-moby #1 SMP Sat Mar 25 02:48:44 UTC 201
在我的Dockerfile中,我有以下内容:
ARG a-version
RUN wget -q -O /tmp/alle.tar.gz http://someserver/server/$a-version/a-server-$a-version.tar.gz && \
mkdir /opt/apps/$a-version
但是,在使用以下工具构建此应用程序时:
--build-arg http_proxy=http://myproxy","--build-arg a
我正在尝试为Neo4j DB构建一个docker容器。虽然本地运行db不是问题,但容器在启动JVM时遇到问题。通过neo4j:3.2.2图像,我正在构建自己的Dockerfile,但我看不到我们使用不同版本的JRE。这个问题似乎源于neo4j.conf,它在无法识别的VM选项标志上崩溃,例如UseG1GC和ommitStackTraceInFastThrow
Dockerfile相当短
FROM neo4j:3.2.2
ADD ./neo4j.conf /var/lib/neo4j/conf/.
如果我在ECS集群上停止/启动任务,则会拉取最新的Docker映像
或
我是否需要创建新任务 ECS将在每次启动任务时提取您在任务定义中指定的映像
如果我在ECS集群上停止/启动任务,则会拉取最新的Docker映像。或者我需要创建一个新任务吗
我认为你混淆了任务和任务定义。任务无法重新启动,因此每次启动任务时都会创建一个新任务。任务定义描述如何创建任务并包含对映像的引用。ECS将在您每次启动任务时拉取,因此您无需每次都创建新的任务定义。看看这是否回答了您的问题
标签: Docker
localhostdockerfiledocker-container
假设在主机上,我有一台运行在localhost:4000上的服务器。如何从Docker容器中连接到该服务器
在某些情况下,这是一种安全风险,但在我的情况下,这是在我的个人计算机上运行的,因此我可以为容器提供与主机对话所需的所有特权
例如,在Docker容器中,如果我运行:
RUN nc localhost 4000 | xargs echo
除非我采取一些额外的步骤,否则我认为这将无法连接到主机上运行的服务器。我想您必须将端口映射到主机:docker run-d-p 4000:4000——名称
我有一个Docker映像a,它对给定的一组文件执行一些逻辑。在本地运行时,我启动a,如下所示:
docker run -v /home/Bradson/data:/data a
这就是它的工作
现在我想在远程Docker守护程序上运行a:
DOCKER_HOST=tcp://remote_host:2375 docker run -v /home/Bradson/data:/data a
我现在得到的错误是/data不包含任何内容,很可能是因为远程主机上不存在/home/Bradson/da
我有一个pod配置文件,我可以用它创建一个pod,运行一些具有特定名称的容器
apiVersion: v1
kind: Pod
metadata:
name: hazelcast
spec:
restartPolicy: Never
containers:
- name: bkregasp01
image: hazelcast/hazelcast
ports:
- containerPort: 5701
env:
- name: JAVA_OPTS
我试图在docker中运行一个Web服务器,我读到的所有内容都说要在docker文件中添加“EXPOSE 5000”,并在docker compose文件中添加端口
我知道Web服务器正在运行,因为我可以在容器内使用lynx进行连接,然后转到。在容器内,一切正常
当我试图从主机系统上的容器外部访问它时,我运行了tcpdump,没有看到任何流量进入容器
docker-compose.yml:
version: '3'
services:
web:
build: .
ports:
我有一个docker映像,它接受额外的命令行参数,如--Port和--AdminUsername
正常的docker命令行如下所示:
docker run --rm -p 9091:80 sheyenrath/wiremock.net-nano --ReadStaticMappings true --AdminUsername x --AdminPassword y --RequestLogExpirationDuration 24
但是如何在Azure服务结构中配置这些参数呢?
Serv
我看到docker的一个相当常见的设置是让容器启动执行任务,然后退出。
这是我在docker compose中经常做的事情,在docker compose中,我有一个执行构建过程的节点容器,并且在构建静态文件后不需要继续运行。
在这些情况下,如果我查看docker compose ps输出,而我的其他容器在端口上启动并公开,则节点容器状态将为“Exit 0”。
尽管在其他情况下处于休眠状态,但如果我需要访问此容器,它可以进行旋转
将此设置转换为Kubernetes的最佳实践是什么
我最初的方法是
我继承了一个系统,该系统由两个异步处理消息的守护进程组成。我正试图找到一种干净的方法,将集成测试引入到这个系统中,同时将对现有程序的影响/风险降至最低。以下是对其职责的一个非常简单的概述:
Process1轮询队列中的消息,并为其排出的每个消息在DB中插入一行
进程2轮询DB以查找进程1插入的行,进行一些计算,然后将文件存放到主机上的目录中并发送电子邮件
这些过程非常古老和复杂,我强烈倾向于避免以任何方式修改它们。我想做的是将它们放在一个容器中,并在其他容器中建立依赖项(队列、数据库、邮件服
标签: Docker
devopsamazon-ecsamazon-ecr
我必须使用部署在ECR上的最新docker映像更新我的ECS服务,并且不更改公共地址。
我试图通过用户界面修改服务,方法是选择强制新部署选项,该选项会生成具有新IP公共地址的新任务,这不太实际。
是否有其他方法或解决方案
谢谢您ECS-更新服务将更改IP地址(目前无法处理)。
您可以做的是-放置一个应用程序负载平衡器,并使用基于路径的路由(基本上您可以设置目标组)
因此,一旦您配置了目标组,您就可以通过负载平衡器DNS名称直接访问该服务,否则更新该服务将更改IP地址,并且每次您都需要检查IP。感
我想使用应用程序创建者提供的docker compose文件在生产环境(单个主机)中部署docker应用程序。基于docker的解决方案被用作单片二进制安装程序的替代品
应用程序附带默认配置,但管理员希望应用适度的配置更改
似乎有几种方法可以将自定义配置应用于docker compose.yml文件中定义的服务,但我不确定哪种方法是最佳做法。我目前正在考虑的两个问题是:
将配置烘焙到新图像中。在这里,我将为docker compose文件中定义的每个服务添加一个构建步骤,并创建一个最小的Doc
在“VS代码远程开发”中启动附加容器时,是否有人找到了在启动VS代码集成终端时更改容器外壳的方法
它的运行方式似乎类似于
docker exec -it <containername> /bin/bash
我和他一起工作
RUN echo "if [ -t 1 ]; then" >> /root/.bashrc
RUN echo "exec zsh" >> /root/.bashrc
RUN echo "fi" >> /root/.bashrc
我是docker的新手,我正在学习教程
构建映像(名为expose static)后,我可以运行
docker运行暴露静态
但是,如果我对发布端口执行类似操作:
docker run expose-static -p 5000:5000
它失败并给出错误信息:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: OCI runtime create failed: conta
我创建了一个项目的docker映像(非常大的项目,需要花时间编译),但我忘了在其中添加一个文件
我与构建无关,它只是一个测试文件
是否可以在不重建所有内容的情况下将此文件添加到我的图像中
谢谢您应该尝试使用
示例:docker提交[OPTIONS]容器[REPOSITORY[:TAG]]
也有,但它只在运行的容器中起作用
我希望这有帮助
Brhaka假设构建是正确的,并且尚未创建任何容器。我建议您通过将图像和addyou文件复制到容器中的适当目标,手动将其容器化
现在您只有以下步骤:
集装箱运
我为我的软件提供了一个直接在用户机器上运行的docker容器。软件应该使用节点锁定许可证,该许可证将绑定到主机的MAC地址。FlexLM用于验证许可证
问题是docker容器默认情况下不会访问主机的MAC地址。必须使用--net参数将docker与主机网络绑定,或者使用--MAC address参数显式提供MAC地址
问题是可以在--mac address参数中传递任何参数,docker容器将使用该mac地址。这违背了节点锁定许可证的全部目的。如何确保docker始终获得主机的MAC地址?简短回
我有一个在堆栈群下运行的服务:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de74ba4d48c1 myregistry/myApi:1.0 "java -Dfile.encodin…" 3 minutes ago Up 3 minutes
我编写了一个python应用程序,它使用Kafka在生产者和消费者之间共享数据。我要把它做成dockerize,所以我写了dockerfile。问题是在最后的步骤中,当我运行Zookeeper服务器时,它说绑定到端口。。。。而且它永远不会退出,所以也可以运行Kafka服务器
FROM ubuntu:18.04
ADD app.py /
RUN apt-get update -y && apt-get install -y apt-transport-https
RUN a
这最初是一条内部消息,可能涉及到我们的一些项目,但背景信息将非常有用,因此在本文中留下了对这些项目的参考
我们遇到了谷歌应用程序引擎的问题,阻止我们进行新的部署
错误消息是:
ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe thi
我尝试为Kubernetes设置haproxy的多主节点设置,如[]中所述。我的网络配置是:
haproxy=192.168.1.213
master0 | 1 | 2=192.168.1.210 | 211 | 212
worker0 | 1 | 2=192.168.1.220 | 221 | 222(此时不感兴趣)
所有主机都能够相互连接(每个节点都解析DNS)。每个节点都运行Ubuntu 18.04.3(LTS)。Docker安装为
docker.io/bionic更新,bionic
此docker compose片段在主机为MacOS时工作正常,但在主机为Ubuntu时失败:
version: '3.3'
services:
cassandra1:
image: cassandra:3.5
container_name: cassandra1
restart: always
environment:
JVM_EXTRA_OPTS: -Dcassandra.config=/home/cassandra/cassandra.ya
这是我的docker撰写文件:
version: '3.5'
services:
elasticsearch:
restart: always
build:
context: elasticsearch/
args:
ELK_VERSION: $ELK_VERSION
volumes:
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsear
我正在尝试通过TCP将docker守护程序从客户端连接到远程主机,但出现以下错误:
docker -H tcp://{{HOST_IP}}:2375 ps
Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
可能的原因是什么?找到解决方案的正确调试方法是什么
系统:Ubuntu 18.04(客户端和主机)
ufw:为所有传入和传出启用(用于测试目的)
访问权限:在客户端和主机上使用roo
我尝试启动Docker Jenkins容器Jenkins/Jenkins:2.218-jdk11,这样如果您创建了一个新的Jenkins容器,那么您已经安装了所有插件,并且跳过了安装
为此,我有一个预安装的/var/jenkins_主页,其中包含Docker用来启动的来自jenkins的所有数据。这个主目录不需要是持久的,只在第一次启动时需要,这样就可以将它复制到容器中
在/var/jenkins_home中有2个目录必须是持久的。我已经尝试用我自己的docker文件用我自己的版本覆盖/var/
因此,我尝试从主容器启动一个无服务器同级容器。我已将/var/run/docker.sock卷绑定到/var/run/docker.sock
$docker inspect-f'{{.Mounts}}'webapp
输出:[{bind/var/run/docker.sock/var/run/docker.sock true rprivate}]
在我的docker文件(来自ubuntu:bionic)中,我安装了docker,代码与我在本地机器(也是ubuntu bionic)上安装docker
签出时,他们通过引用托管的图像来设置服务,如下所示:
services:
redis:
image: redis
ports:
- 6379:6379
options: --entrypoint redis-server
我们为Elasticsearch使用自定义Dockerfile,该文件存储在与工作流相同的存储库中,并且在Docker Hub上不公开。我想引用Dockerfile作为服务,而不必从我们的私有
我以为docker logout命令会让我从我刚刚登录的远程私有docker注册表中注销,但它没有
在尝试注销之前:
$ cat ~/.docker/config.json
{
"auths": {
"rg.nl-ams.scw.cloud": {
"auth": "da2kleGhoPNjVj...pLri69="
...
命令之后
$ docker logout
$ cat ~/.docker/config.jso
标签: Docker
docker-machinedocker-toolbox
我正在Windows上运行docker on docker工具箱。我在boot2docker虚拟机的/var/lib/boot2docker/profile文件中编写了一些错误的脚本。因此,我的docker机器不会启动或停止,给我错误退出状态255。我不想删除它,因为它运行着图像和容器。有人能建议我如何恢复它吗
下面是运行以下命令时出现的错误
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM D
我有两个docker映像,一个modbus服务器和一个客户端,我用docker run--network host server手动运行,客户端也一样,工作正常。但现在我需要将它们添加到docker compose文件中,其中网络是网桥,我是这样做的:
autoserver:
image: 19mikel95/pymodmikel:autoserversynchub
container_name: autoserver
restart: unless-stopped
我需要在Docker容器中安装pip cfgrib,以便使用xarray读取.grib文件。为了安装cfgrib,我需要ECCODE。要获得ECCODE,显然我需要一个需要gdb的fortran编译器
安装gdb被证明是有问题的。根据文档,我遇到了一个我不完全理解的错误:
amd64-linux-nat.c:248:1: error: conflicting types for ‘ps_get_thread_area’
ps_get_thread_area (const struct ps_p
我第一次尝试dockerize.NETCore2.xWebAPI应用程序。
这是我的档案:
Dockerfile
docker compose.yml
appsettings.json
来自Startup.cs
我得到一个错误:
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection
我必须在Rails容器中安装一个打印机,这样我的Rails应用程序就可以将作业打印到80毫米纸卷打印机上
我使用的是rails 2.6:buster图像
问题是:当安装这个包时,它抛出一个错误,/dev/tty[something]不存在
当我在容器中设置卷/dev:/dev时,它是固定的,我可以将它安装在docker compose run rails_app dpkg-I…/this-package.deb上
但我在想:
在容器启动后安装此软件包是否明智?如果是这种情况,我应该将其添加到en
我已经试着解决这个问题好几天了,但我不知道怎么解决
我已使用KeyClope创建了一个docker实例:
docker run -p 8080:8080 --name keycloak --net keycloak-network -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e KEYCLOAK_FRONTEND_URL="https://myurl.com/auth" -e KEYCLOAK_LOGLEVEL=DEB
标签: Docker
dockerfiledocker-imagedocker-repository
我想为不同的环境(开发、测试和产品)创建Docker映像。我确实创建了三个不同的DockerFile
我发现以下两个选项可以在单个存储库或多个存储库中管理不同版本的图像
Option 1: Build images with different tags and push it to the single docker repository?
Option 2: Create separate docker repository for each environment and push co
我将尝试遵循本教程:
这就是我所做的:
mkdir /home/testuser/OpenGrokTest
cp -R SmallCppProject /home/testuser/OpenGrokTest/
docker pull opengrok/docker
docker run -d -v /home/testuser/OpenGrokTest/:/opengrok/src -p 8080:8080 opengrok/docker:latest
现在我可以使用localhost:80
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 947 页