docker nodejs容器不能连接mysql容器

我正在Digital Ocean运行Docker服务器。 在那里我有两个容器Nodejs和Mysql。 Mysql容器已经打开到3306的端口。 尝试通过Docker Server的ip +端口通过nodejs访问mysql时。 我得到错误:连接ETIMEDOUT。 当我在本地计算机上运行相同的nodejs泊坞窗安装程序时,它工作正常。 有什么我失踪? 这里是nodejs docker-composer.yml: version: '2' services: test-web-install: image: example-nodejs:latest working_dir: /home/app volumes: – ./:/home/app command: sh -c 'nodemon' environment: – NODE_ENV=development – DB_HOST=192.168.11.207 #or public ip in internet – DB_PORT=3036 – DB_PASSWORD=root – DB_USER=root – DB_DATABASE=root ports: – "3000:3000" 这里是mysql的docker-composer.yml mysql: container_name: flask_mysql restart: always image: […]

Django的优惠券不能导入名称“模式”在docker化的Django的Web应用程序

我第一次尝试docker,并没有问题。 我知道'模式'在Django 1.8中被弃用,并且对包(django-coupons)进行了必要的修改,因为它触发了一个相同的错误,但是我想在docker镜像中使用这个包,而且我无法和我在本地环境上做的一样。 任何人都可以build议最好的方法来做到这一点? 这是我的Dockerfile。 这和我在Django的Docker教程中find的一样。这里是我的Dockerfile。 FROM python:3.5 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/ 这和我在django的Docker教程中find的是一样的。 提前致谢。

无法从本地主机连接到mysql容器

我试图build立一个MySQL容器进行开发。 所以我用docker-compose来设置它。 容器和mysql看起来不错。 问题是我想从DBeaver客户端连接到它,我无法find我如何做到这一点。 这是我docker-compose.yml : version: '2' services: db: image: 'mysql:5.7' volumes: – '~/dev/dbs-data/mysql:/var/lib/mysql' restart: 'always' expose: – '3306' ports: – '3306:3306' environment: MYSQL_ROOT_PASSWORD: 'pass' MYSQL_DATABASE: 'db' MYSQL_USER: 'user' MYSQL_PASSWORD: 'pass' 当我尝试从DBeaver连接时,我得到: java.sql.SQLException: null, message from server: "Host '172.18.0.1' is not allowed to connect to this MySQL server" UPDATE 我没有尝试使用IP 172.18.0.1进行连接。 我试图连接使用localhost:3306和子IP泊坞窗给它0.0.0.0:3306 UPDATE 在我的Mac上成功连接后,我再次在我的Linux上再次用DBeaver: […]

在Docker上运行的应用程序使用主机的页面caching。是否反模式?

如果是这样的话,那么在容器层面上就没有主机资源的隔离了吗?在Docker上运行的一个应用程序可能会过度使用页面caching并搞乱主机或其他容器。 有没有机会?

等同构build不相同

如果我build立这样的图像: docker build -f app/Dockerfile -t test . 它build立得很好,但下面docker-compose.yml (我相信应该是等效的): app: container_name: test build: context: . dockerfile: app/Dockerfile 无法build立。 如果我运行docker-compose与–verbose我看到: compose.cli.verbose_proxy.proxy_callable:docker build < – (pull = False,stream = True,nocache = False,tag = u'prj_app',buildargs = None,rm = True,forcerm = False,path ='/ Users / ekkis / dev / prj',dockerfile ='。/ app / Dockerfile') 这似乎是我所期望的。 特别是我得到的错误是(抱歉,包括作为代码,但报价混乱的事情): npm WARN […]

如何解决cadvisor错误`devicemapper文件系统统计不会被报告?

我正在运行官方的Docker镜像google/cadvisor:v0.24.1根据这里的说明(只用当前版本replace标签而不是latest版本): docker run \ –volume=/:/rootfs:ro \ –volume=/var/run:/var/run:rw \ –volume=/sys:/sys:ro \ –volume=/var/lib/docker/:/var/lib/docker:ro \ –publish=8080:8080 \ –detach=true \ –name=cadvisor \ google/cadvisor:v0.24.1 看着容器里的日志,我看到这个: W0318 17:50:00.775708 1 fs.go:209] Could not get Docker devicemapper device: exit status 1 E0318 17:50:00.840177 1 factory.go:291] devicemapper filesystem stats will not be reported: stat /dev/mapper/dockervg-dockerlv_tmeta: no such file or directory docker命令将容器内的/rootfs下的主机的根文件系统挂载。 是不是考虑到那里的dm设备? 我没有发现任何设置,我可以改变指点顾问到真正的根源。 我必须将/ […]

Docker作为沙盒环境

我想创build一个在Docker容器中运行的应用程序,并且每个注册用户启动其他Docker容器,每个Docker容器运行一个API应用程序实例以满足单个用户的需求。 我希望当这些容器按需要closures时,持久地将用户的数据/文件存储在NoSQL DB中。 我的问题是双重的: 这是一个/适当的/正确的/打算用于Docker和/或容器? 这可能和/或困难(与.NET)?

如何在一个docker容器中运行etcd之后启动一个python脚本?

我build立了一个由python2.7-alpine和etcd( https://hub.docker.com/r/elcolio/etcd/ )组成的docker文件,我试图在etcd运行之后运行一个python脚本(从相同的容器),但是我得到连接错误,因为etcd还没有结束。 有什么build议么? (我试图在上一个CMD之后创build另一个CMD,并且将exec命令放入run.sh) FROM python:2.7-alpine RUN pip install python-etcd # Create script directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY ./scripts /usr/src/app ## install etcd RUN apk add –update ca-certificates openssl tar && \ wget https://github.com/coreos/etcd/releases/download/v2.0.10/etcd-v2.0.10-linux-amd64.tar.gz && \ tar xzvf etcd-v2.0.10-linux-amd64.tar.gz && \ mv etcd-v2.0.10-linux-amd64/etcd* /bin/ && \ apk del –purge tar openssl […]

Docker Compose使用docker run开始移除容器

我有两个不同的Web项目使用同一套Docker镜像来创buildAPI响应。 开发人员可以从GitHub中克隆这些Web项目中的任意一个,然后运行npm脚本在本地开发机器上启动Web层。 Repo 1在这个repo中,web层的构build脚本使用一个脚本文件为应用程序层旋转容器(比如容器名称是APP_CONTAINER)。 应用程序层的端口是9090(例如),Web层在8080上运行。该回购站中的docker脚本检查任何正在运行的应用程序(API)容器,将其删除,从我们的内部泊坞窗中取出最新的图像,然后再次启动这些容器。 Repo 2在这个repo中,web层的构build脚本使用docker compose来拉和拉应用程序(API)容器(与APP_CONTAINER同名)。 这些容器的端口需要是相同的9090端口。 这个回购networking层运行在不同的端口,即端口3000。 我的问题是,当我在Repo 2中运行docker compose时,是否有办法删除容器APP_CONTAINER,如果它已经被第一个repo使用docker run命令创build并运行的话?

排除.dockerignore中的文件夹

我试图阻止我的Drupal composer项目中的文件和文件夹列表被包含在docker镜像中,但是作为一个意想不到的副作用,它也排除了一些在.dockerignore中没有明确定义的文件夹。 这是我正在使用的文件: # root files .gitignore .gitmodules .travis.yml .gitlab-ci.yml docker-compose.yml LICENSE phpunit.xml.dist README.md # folders .c9 .git backups/ vendor/ web/core/ web/modules/contrib/ web/profiles/ web/themes/contrib/ # web files web/.csslintrc web/.editorconfig web/.eslintrc web/.eslintignore web/.gitattributes web/.htaccess # web sites files web/sites/development.services.yml web/sites/example.settings.local.php web/sites/example.sites.php # web sites default files web/sites/default/files/ web/sites/default/default.services.yml web/sites/default/settings.local.php <all combinations of lines below, one at […]