Tag:

如何在docker-compose文件中dynamic获取主机ip?

对于docker开发环境,我们使用的是docker-compose-file。 一切工作正常,我们真的很高兴,但有一个小问题,我会工作: 我们用xdebug安装php-fpm。 现在我们configuration它如下: PHP-Dockerfile: FROM php:7.1-fpm RUN docker-php-ext-install pdo_mysql \ && docker-php-ext-install json \ && pecl install xdebug \ && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \ && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \ && echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini 泊坞窗,compose.yml: services: //[…] php: build: ./docker/php/ container_name: dev-php expose: – 9000 volumes: – .:/var/www/html environment: […]

将AWS凭证传递给Docker容器的最佳方法是什么?

我在Amazon EC2上运行docker-container。 目前我已经将AWS Credentials添加到Dockerfile。 你能不能让我知道这样做的最好方法?

无法将MySQL容器连接到Docker中的Tomcat容器

计划 我希望我的tomcat服务器能够连接到我的MySQL服务器在不同的容器中。 问题 Tomcat无法连接到MySQL 我使用了wordpress教程中有关build立与mysql容器的链接的一些细节,并创build了到MySQL的链接。 虽然tomcat和mysql的旋转起来很好,我似乎无法得到的Tomcat能够连接到MySQL,设置在我的本地机器上工作得很好。 我试图使用 – –net: "host" ,尽pipe这不适用于Tomcat,因为它会引发严重的错误。 以前的答案 我注意到这个post上的错误可能修复的负载 ,虽然我不相信任何这些会转化为我的问题,因为我相信这是一个docker问题,而不是一个主机。 泊坞窗,compose.yml web: image: tomcat:7.0 container_name: tomcat-container ports: – "80:8080" hostname: docker-tomcat volumes: – /home/webapps:/usr/local/tomcat/webapps links: – db db: image: mysql container_name: mysql-container environment: MYSQL_ROOT_PASSWORD: Mysqlpassword1 MYSQL_DATABASE: tracker volumes: – /home/mysqlDB:/var/lib/mysql 这是Context.xml from tomcat.我的Context.xml from tomcat. <Context> <Resource name="jdbc/tracker" type="javax.sql.DataSource" maxActive="100" maxIdle="30" […]

如何使用我的docker-composeconfiguration与gitlab CI

我有一个关于gitlab的项目,我将使用gitlab CI进行unit testing。 其实,我有一个其他的仓库名称“docker”与docker-compose.yml和Dockerfile两个项目(因为我重现生产configuration,这两个项目是相互依赖的) 其实在我的开发configuration 在Projects目录中: docker PROJECT_1 project_2 在docker目录中: 泊坞窗,compose.yml Dockerfile-PROJECT1 Dockerfile-项目2 [docker文件中的一些configuration文件问] docker-compose.yml的相对path为../project_1和../project_2 为了build立我的configuration,我做了: cddocker工人 docker-compose up -d project1(在docker-compose.yml中的名字) docker exec -ti project1 bash 题 ? 我想知道我怎么可以拉git仓库“docker”,并启动docker – 组成了project1自gitlab CI启动? 谢谢

无法连接到docker集装箱

我设置了两个swarmpipe理器节点(mgr1,mgr2)。 但是,当我尝试连接到容器,它会引发错误消息。 [root@ip-10-3-2-24 ec2-user]# docker run –restart=unless-stopped -h mgr1 –name mgr1 -d -p 3375:2375 swarm manage –replication –advertise 10.3.2.24:3375 consul://10.3.2.24:8500/ [root@ip-10-3-2-24 ec2-user]# docker exec -it mgr1 /bin/bash rpc error:code = 2 desc =“oci runtime error:exec failed:exec:\”/ bin / bash \“:stat / bin / bash:no such file or directory” 这两个服务器都发生了(mgr1,mgr2)。 我还在每个节点上运行consul容器,并能够连接到领事容器。

Terraform可以从remote_exec命令设置variables吗?

我正在尝试使用Terraform在AWS中构build一个Docker Swarm集群。 我已经成功地启动了一个Swarmpipe理器,但是我正在设法解决如何将连接键传递给worker(将在pipe理器之后创build)。 我想要一些运行docker swarm join-token worker -q命令的方法,它可以设置为Terraformvariables。 这样,工作人员可以有一个像docker swarm join ${var.swarm_token} ${aws_instance.swarm-manager.private_ip}一样的remote_exec命令docker swarm join ${var.swarm_token} ${aws_instance.swarm-manager.private_ip} 我怎样才能做到这一点? 我的configuration如下: resource "aws_instance" "swarm-manager" { ami = "${var.manager_ami}" instance_type = "${var.manager_instance}" tags = { Name = "swarm-manager${count.index + 1}" } provisioner "remote-exec" { inline = [ "sleep 30", "docker swarm init –advertise-addr ${aws_instance.swarm-manager.private_ip}" "docker swarm join-token worker […]

使用docker-compose和GELF日志驱动程序

根据官方的Docker文档 ,可以将容器的stdout和stderr输出作为GELF消息获得 , GELF消息是Graylog / Graylog2和logstash可以理解的格式。 这工作正常,当我从命令行手动运行我的容器。 例如, docker run –log-driver=gelf –log-opt gelf-address=udp://localhost:12201 busybox echo This is my message. 将发送一个日志消息到我的本地主机上运行的Graylog2服务器,该主机有一个在端口12201configuration的UDPinput监听器。 现在,我想用docker-compose使用相同的日志选项,根据文档, 原则上应该是可能的 。 但是,文档没有提到任何日志格式,但json-file , syslog和none ,当我包括类似的东西 my-container: container_name: … build: … ports: … log_driver: "gelf" log_opt: gelf-address: "udp://localhost:12201" 在我docker-compose.yml文件中docker-compose.yml docker-compose up失败: Traceback (most recent call last): File "<string>", line 3, in <module> File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", […]

无法连接到通过docker-compose创build的MySQL docker容器

我想开始使用docker,并创build一个简单的容器环境,包含一个nginx容器,一个PHP-FPM容器和一个MySQL容器。 虽然nginx和PHP-FPM容器之间的链接工作得很好,但我似乎无法将PHP应用程序服务器与数据库服务器连接起来。 我使用docker-compose来最小化手动terminal工作。 我的docker-compose.yml如下所示: web: image: tutorial/nginx ports: – "8080:80" volumes: – ./src:/var/www – ./src/vhost.conf:/etc/nginx/sites-enabled/vhost.conf links: – php php: image: nmcteam/php56 volumes: – ./src/php-fpm.conf:/etc/php5/fpm/php-fpm.conf – ./src:/var/www links: – db db: image: sameersbn/mysql volumes: – /var/lib/mysql environment: – DB_NAME=demoDb – DB_USER=demoUser – DB_PASS=demoPass 虽然我尝试使用以下语句连接到数据库: $db = new \PDO('mysql:host=db;dbname=demoName', 'demoUser', 'demoPass'); MySQL容器本身正在工作,因为我可以连接到容器bash并使用MySQL CLI: mysql> show databases; +——————–+ […]

我如何附加到现有的docker机(Azure)?

假设我使用以下命令来创build新的Azure泊坞窗机器: docker-machine create -d azure \ –azure-subscription-id="$AZURE_SUBSCRIPTION_ID" \ –azure-size=Standard_D14_v2 \ –azure-subscription-cert="${PWD}/certs/mycert.pem" \ –azure-location="East US" \ my-azure-node 在这之后,当我运行docker-machine ls ,ssh并运行任何我想要的docker命令时,我可以看到my-azure-node。 但是现在我想让同事能够在同一台跑步机上进行操作。 所以,一旦我将mycert.pem传递给她(愚蠢的问题,但我可以与她分享这个文件?)。 她如何初始化docker机器,以便在执行docker-machine ls机器时可以看到同一台docker-machine ls ,而不需要创build新机器。 我基本上想要一个单一的docker机,我们共享,并与docker机简单。

删除具有依赖儿童图像的docker图像

我想删除docker的图像,但我遇到这样的错误消息: 来自守护进程的错误响应:冲突:无法删除47bcc53f74dc(不能被强制) – 图像有从属的子图像 我通过docker stop $(docker ps -a -q)命令停止所有容器。 之后,我通过docker rmi $(docker images | grep "busybox" | awk '{print $3}')命令删除所有busybox图像。 而且我遇到了类似上面的错误信息。 我显示docker images | grep busybox docker images | grep busybox并获取如下信息: busybox 1 47bcc53f74dc 6 months ago 1.113 MB busybox 1-uclibc 47bcc53f74dc 6 months ago 1.113 MB busybox 1.24 47bcc53f74dc 6 months ago 1.113 […]