Tag:

Docker容器中的MySQL服务不能在macOS Sierra 10.12.6中运行

我被迫重新安装了macOS Sierra,因为我在高级Sierra的testing版程序中,我发生严重的崩溃,所以我降级了系统。 这个Dockerfile在系统突然崩溃之前正在High Sierra工作。 FROM ubuntu:16.04 MAINTAINER XXX version 0.0.1 # Prepare Debian environment ENV DEBIAN_FRONTEND noninteractive # we don't need an apt cache in a container RUN echo "Acquire::http {No-Cache=True;};" > /etc/apt/apt.conf.d/no-cache # —————————- # Configure supervisor # —————————- RUN apt-get update > /dev/null 2>&1 && apt-get install -y supervisor > /dev/null 2>&1 RUN […]

docker工 – 使用旧卷撰写

我正在尝试与docker-composebuild立一个CIpipe道,并且正在努力了解命名卷的工作原理。 作为我的Dockerfile的一部分,我将复制到应用程序文件中,然后运行composer install来安装应用程序依赖项。 有些应用程序文件的元素以及我想与正在运行/正在运行的其他容器共享的依赖关系将被运行以执行实用程序进程(如运行数据库迁移)。 看下面的例子: Dockerfile: FROM php:5.6-apache # Install dependencies COPY composer.* /app/ RUN composer install –no-dev # Copy application files COPY bin bin COPY environment.json environment.json VOLUME /app 泊坞窗,compose.yml web: build: context: . dockerfile: docker/web/Dockerfile volumes: – app:/app – ~/.cache/composer:/composer/cache migrations: image: my-image depends_on: – web environment: – DB_DRIVER=pdo_mysql – AUTOLOADER=../../../vendor/autoload.php volumes: – […]

本地Windows Server 2016 VM中的Spawn Docker EE Swarm服务

我想演示在本地Windows Server 2016虚拟机中运行带有简单Asp.Net Core网站的Docker群集。 该网站运行在端口5000.但是,当我初始化群体并添加服务,我无法访问指定的端口上的网站地址。 导航到http:// localhost:5000 , http: //127.0.0.1 :5000 ,或任何服务容器IP不会显示该网站。 为什么这是一个群体的情况? Windows防火墙已禁用。 Dockerfile.build FROM microsoft/aspnetcore:2.0.0-nanoserver WORKDIR / COPY /bin/Release/netcoreapp2.0/win7-x64/publish ./ EXPOSE 5000 ENTRYPOINT ["AspNetCoreHelloWorld.exe", "–urls", "http://*:5000"] 初始化群 docker swarm init –advertise-addr 127.0.0.1:2377 –listen-addr 0.0.0.0:2377 创build一个服务 docker service create –name helloworld –publish 5000:5000 –replicas 3 myazureregistry.azurecr.io/aspnetcore-hello-world:v2 我可以确认该服务在我的节点中复制了三个实例。 为什么端口列是空的,即使我映射端口5000? docker service ps helloworld ID NAME […]

Docker群集:REST API可以通过端口3001访问,但不能通过networking服务器访问

我有以下设置: networking:入口(Swarm)服务:web api Web服务运行在端口3000暴露的容器中,并且api运行在端口3001暴露的容器中。 我可以查询本地主机:3000或IP地址:3000(从任何其他机器),并加载Web应用程序。 此外,我可以POST本地主机:3001或IP地址:3001(从任何其他机器)的API,我会得到所需的响应。 在Web应用程序中,有一个REST端点,它允许我在/ api端点将数据POST到端口3000,该端点将该POST请求redirect到api容器上的3001。 问题是,当我发布数据到3000:/ API,curl只是挂起。 没有反应,也没有什么,我不知道该怎么做。 从文档中可以看出,同一networking中的所有容器都可以访问对方的端口,而不pipe它们是否被公开/公开。 我很困惑,为什么它不工作。 另外,我甚至没有得到一个错误,curl只是不返回一个值。 例: docker swarm init docker service create –name=web –mode global –publish 3000:3000 project/web docker service create –name=api –replicas 5 –publish 3001:3001 project/api 现在,如果我从networking上的另一台计算机运行以下命令,它工作正常: curl <IP_address>:3000 从web-app curl返回index.html:3001 / predict –data'{…}'-H“Content-Type:application / json”根据需要返回正确的数据 现在,Web应用程序具有一个端点:3000 / api / predict,它从主体获取json,然后将相同的数据发布到localhost:3001 / predict端点(位于另一个容器上)。 如果我ssh进入容器,curl请求返回连接被拒绝的错误。 我也尝试用一个复制的容器的名称或服务的名称replace“localhost”。 […]

文件在Docker容器中不断返回

我正在使用Docker容器构build一个Drupal环境。 为了达到这个目的,我创build了2个docker容器。 一个用于drupal本身,另一个用于MariaDB实例。 这些使用docker-compose捆绑在一起: 这个环境的目标是根据PHP 7.xtesting现有的网站。 要做到这一点,我需要导入一个数据库转储与settings.php(凭证)文件。 一切正常,直到昨天。 每次启动docker-compose文件,并使用以下命令进行深入研究: docker exec -it drupal_environment bash 旧的settings.php文件不断返回。 我已经删除了我的卷,图像,networking和(运行)容器。 settings.phpconfiguration: UPDATE 仍然有同样的问题,即使我从docker集线器新鲜的图像。

本地主机和已发布端口的Windows容器限制

我已经阅读了docs.docker.com的“局部主机和发布端口的Windows容器的限制”部分 ,并且明白我需要使用容器IP才能访问DockerForWindows上的容器的port80。 Howerwise我无法使用http://172.14.0.2浏览容器IP,甚至无法从我的Windows主机ping。 docker文件 = https://github.com/cjonesdev/docker-amazonlinux-lamp/blob/master/Dockerfile docker run -ti –name lamp -p 80:80 -p 443:443 -p 3306:3306 -v D:\Dropbox\www:/var/www/html -d amazonlinux6 run = docker run -ti –name lamp -p 80:80 -p 443:443 -p 3306:3306 -v D:\Dropbox\www:/var/www/html -d amazonlinux6 989094308f8c amazonlinux "/bin/bash" 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:3306->3306/tcp lamp ps result = 989094308f8c amazonlinux "/bin/bash" 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:3306->3306/tcp lamp […]

如何添加一个本地Maven项目作为依赖另一个Maven项目?

有两个maven项目 – proejct1和project2 。 com.project1.Object1.class依赖于com.project2.Object2.class ,我想添加project2作为依赖project1。 我知道在某些IDE(如Itellij)下这很容易设置,我正在使用IDE设置进行开发。 但是对于生产,我需要从任何IDE环境中构build独立的project1。 另外我正在使用Docker 。 如果有一种方法可以简化Docker中的这个问题,那将会很不错。 – root – project1 – src – com.project1.Object1.class – pom.xml – Dockerfile – project2 – src – com.project2.Object2.class – pom.xml – Dockerfile – docker-compose.yml

Docker群集容器无法访问互联网

我正在尝试在AWS中设置swarm群集,但主机中的容器无法访问互联网。 通过IP地址parsing或直接连接的ping命令不能在容器内工作。 在创build这张票之前,我看了一下这个问题,但是我不认为CIDR在我的情况下是重叠的。 我有以下configuration: Public Subnet CIDR : 10.2.1.0/24 Namespace server inside this is :10.2.0.2 Ingress overlay network –> 10.255.0.0/16 docker_gwbridge –> 172.18.0.0/1 我也尝试创build新的覆盖(192.168.1.0/24)和docker_gwbridge(10.11.0.0/16)networking没有运气。 我正在使用这些选项创build服务(删除挂载和env参数): docker service create –publish 8098:8098 <Imagename> 请注意当我自己创build覆盖networking时,我正在添加选项–network my-overlay以及create命令。 任何指针,我可能会错过/做错了什么? 编辑1添加更多信息 下面是容器的检查,当我不创build一个新的覆盖networking,并使用默认的: "NetworkSettings": { "Bridge": "", "SandboxID": "eb***", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "5005/tcp": null, "8080/tcp": null }, […]

将堆栈部署到Docker for AWS的正确方法

我正在尝试将基于docker-compose的堆栈部署到AWS的Docker(通过AWS CloudFormation创build)。 我编写的YAML文件是在私有registry(Gitlab)中的Git仓库和Docker镜像中进行pipe理的。 与Manager合作部署服务的正确方式是什么? 我尝试了(并失败了)几种方法: 通过Docker API使用本地Docker客户端是不可能的,因为Docker for AWSpipe理器节点没有打开2375端口。 Rsyncing直接将YAML和环境文件组合到pipe理器节点是不可能的,因为Amazon Docker AMI上未安装rsync 。 从Gitlabcurl文件似乎是一个非常不方便的做法。 谢谢

ASP NET核心:docker-compose中的别名不会出现在/ etc / hosts中

我有一个Docker支持ASP NET核心应用程序。 docker-compose文件如下所示: version: '3' services: test: image: test build: context: ./Test dockerfile: Dockerfile networks: test_nw: aliases: – test_alias oracledb: image: sath89/oracle-12c ports: – "1521:1521" networks: test_nw: aliases: – oracledb_alias networks: test_nw: 但是启动应用程序后,我查看了ASP.NET Core应用程序的容器(执行cker exec -it … bash )并检查了/etc/hosts文件,但是数据库oracledb_alias的相应别名没有出现在其中。 所以当在连接string中使用oracledb_alias作为主机名时,应用程序找不到数据库。 我做错了什么? 我如何解决这个问题?