Tag:

无法将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无法初始化

我正在尝试安装Docker社区版的Windows,安装成功,并要求我注销并重新login,我也一样。 但是当我试图启动docker时,它说 – 任务被取消了。 在Docker.Program.Run(IReadOnlyCollection`1 args)的Docker.WPF.BackendClient.Version()上的Docker.Core.Pipe.NamedPipeClient.Send(String action,Object []参数) 这是给我下面的选项 – 任何帮助或指针都将非常有帮助。

使用docker机器来设置Swarm的麻烦

我在部署本地基于virtualbox的群集时遇到了问题 – 我按照正式的docker文档中有关使用docker-machine工具设置master / worker节点的说明。 我已经在dockerhub上创build了令牌,并且使用了–swarm(和–war-master)和–warm-discovery token:// XXXX …这么好,两台机器运行,看起来好像是Swarm master,工人: spaceback@brutus:~$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS swarm-master * (swarm) virtualbox Running tcp://192.168.99.100:2376 swarm-master (master) v1.12.0 swarm-node1 – virtualbox Running tcp://192.168.99.101:2376 swarm-master v1.12.0 spaceback@brutus:~$ docker run –rm swarm list token://[….] 192.168.99.101:2376 192.168.99.100:2376 使用“eval $(docker-machine env – swarm-master)”来设置正确的环境值后,我可以使用“docker info”获得状态,指出我有两个节点正在运行…但是任何尝试运行任何其他docker群swarm命令(docker节点,docker服务…)我得到“错误响应守护进程:404页未find”。 我究竟做错了什么?

Docker Swarm – networking覆盖不能连接所有容器

我目前有3个EC2实例设置了Docker Swarm和Consul。 我有3个简单的节点应用程序遍布所有3个实例,然后nginx在我的swarm主机上进行路由。 使用覆盖networking指南,我创build了一个名为mynet的新覆盖mynet并将每个容器连接到此networking。 使用docker inspect我可以确认每个节点容器和nginx容器都连接到mynet并具有IP。 但是,在对我的nginx容器进行切换之后,它只能通过networking与位于同一主机上的节点应用程序通信,而不能与集群中其他主机上的节点应用程序进行通信。 在运行docker network inspect mynet ,只列出了两个容器(同一主机上的nginx和一个节点实例),而另外两个容器没有列出,即使它们具有该覆盖networking的名称和IP从docker inspect 。 这个想法是使用一个nginx反向代理来添加任何联机到它的configuration的新的容器,但我坚持让容器所有连接。 根据Dockernetworking文档覆盖这应该是可能的。 我究竟做错了什么? 谢谢。 编辑: 在发送垃圾邮件之后, docker network inspect mynet几次docker network inspect mynet ,看起来容器不断地与networking连接和断开连接,即使我已closures了所有的防火墙并打开了用于testing目的的端口。 什么会导致这样的事情?

docker-compose Rails spring不起作用

我用 铁路4.2.5.1在集装箱内运行 Ruby 2.3.1运行wit容器 当我开始 $ docker-compose exec web /bin/bash # ssh into the web server $ bundle exec rails c 我得到了以下错误。 from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:86:in `each' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:86:in `block in require' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:75:in `each' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:75:in `require' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler.rb:106:in `require' from /usr/src/app/config/application.rb:7:in `<top (required)>' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:82:in `require' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:82:in `preload' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:131:in `block […]

为什么推送私人,安全的dockerregistry失败?

我想在自愈的AWS ECS群集上运行私有的,安全的,已authentication的dockerregistry。 群集设置完成并正常工作,但我努力获取registry:latest运行。 问题是,每次我推送一个图像,推动blob失败,并进入一个重试周期,除非我得到一个超时。 为了确保我的ECS设置不是阻塞器,我尝试使用Docker4Mac 1.12.0-a在本地设置一切。 首先,非常基本的设置工作。 我创build了我自己的registry映像版本,在那里我把我的TLS证书包和密钥以及必要的htpasswd文件直接放到映像中。 [我知道,这是不安全的,我只是做testing的目的]。 所以这里是我的Dockerfile : FROM registry:latest COPY htpasswd /etc/docker COPY server_bundle.pem /etc/docker COPY server_key.pem /etc/docker server_bundle.pem为我的域mydomain.com (CN = * server_bundle.pem有一个通配符证书作为第一个证书,其次是中间CA证书,所以客户端应该很高兴。 我的htpasswd文件是使用推荐的方法创build的: docker run –entrypoint htpasswd registry:2 -Bbn heyitsme mysupersecurepassword > htpasswd 我build立我的形象: docker build -t heyitsme/registry . 之后我运行一个非常基本的W / O TLS和authentication版本: docker run –restart=always -p 5000:5000 heyitsme/registry 我实际上可以拉,标记和重新推送一个图像: […]

连接到docker-compose mysql容器会拒绝访问,但docker运行相同的映像不会

我有一些问题连接到我用docker-compose启动的mysql docker容器。 这是一个很长的post(对不起!)。 这是我的docker-compose.yml文件: db: image: mysql:5.7 ports: – "3306:3306" # I have tried both ports and expose "3306". Still doesn't work environment: – MYSQL_ROOT_PASSWORD="secret" – MYSQL_USER="django" – MYSQL_PASSWORD="secret" – MYSQL_DATABASE="myAppDB" 然后: $> docker-compose build db uses an image, skipping #expected! $> docker-compose up <<LOTS OF OUTPUT>> 好,现在我有一个运行的docker容器runner mysql:5.7。 大! 还是呢? 当在我的Django应用程序中testing时,我得到操作错误,说用户不允许连接数据库。 好吧,那么也许这是我的django呢? $> docker […]

容器命令不能被调用

试图在我的本地机器上启动docker-compose堆栈时遇到了此错误消息。 我有一个Dockerfile,这是官方的Wordpress图像相同。 我的docker-compose文件如下所示: wordpress: image: joystick/wp ports: – "8000:80" links: – wordpress_db:mysql environment: – WORDPRESS_DB_HOST=mysql – WORDPRESS_DB_NAME=wordpress – WORDPRESS_DB_USER=admin – WORDPRESS_DB_PASSWORD=password wordpress_db: image: tutum/mysql environment: – ON_CREATE_DB=wordpress – MYSQL_PASS=password 当我把这个开头的“图像”部分改成“wordpress”并使用官方图像时,一切都会如我所料。 但是当我尝试构build自己的图像,然后在此docker-compose文件中使用它时,出现错误消息“容器命令无法调用”。 我试图添加一个“命令”节点到这个docker组成的“WordPress的”部分,但没有奏效。

运行多个docker-compose(每台机器一台)

我正在testing很多微服务。 我把它们中的一些放在一个docker-compose文件中,例如: agent: image: php:fpm volumes: – ./GIT:/reposcm:ro expose: – 9000 links: – elastic elastic: image: elasticsearch expose: – 9200 – 9300 然后我通过$docker-compose up启动第一个 在另一个目录中,我将启动$docker-compose up另一个“微服务”。 但是我得到: ERROR: Couldn't connect to Docker daemon – you might need to run `docker-machine start default`. 如何为docker-compose.yml指定docker机器? $docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default – virtualbox Running […]

docker-machine中的Eval:terminal vs shell脚本

我正在尝试运行一个简单的shell脚本来自动更改docker-machine环境。 问题是这样的,当我在Macterminal中直接运行以下命令时,输出如下内容: eval $(docker-machine env default) docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * digitalocean Running tcp://***.**.***.***:**** v1.12.0 所以基本上你会期望,但是当我运行下面的.sh脚本: #!/usr/bin/env bash eval $(docker-machine env default) 输出是: ./run.sh docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default digitalocean Running tcp://***.**.***.***:**** v1.12.0 所以基本上,它不是设置为主动,我无法访问它。 有没有人遇到过这个问题,知道如何解决它? 看起来对我来说真的很奇怪,几乎所有的东西都在运行,而且自动化了。 干杯,亚伦