Tag:

Docker容器无法连接到主机:没有路由到主机

我一直在尝试使用docker撰写docker环境。 我难倒的一个问题是我的docker集装箱无法到达我的主机。 我使用下面的撰写文件设置一个容器: version: '3' services: webapp: image: … ports: – "8080:8080" 当我进入容器时,我能够ping我的主机: ping ${dockerHostIP} 但是,当我尝试使用容器内的curl来检索主页: curl http://${dockerHostIP}:8080 我得到: curl: (7) Failed connect to ${dockerHostIP}:8080; No route to host 我不知道该怎么办才能解决这个没有路由到主机的错误。 不幸的是我需要能够做到这一点,因为Web应用程序在内部使用其主机名进行请求。 Traceroute结果: traceroute ${dockerHostIP} traceroute to ${dockerHostIP} (${dockerHostIP}), 30 hops max, 60 byte packets 1 ${dockerHostName} (${dockerHostIP}) 0.039 ms !X 0.012 ms !X 0.007 ms […]

docker中的Django shell模式

我正在学习如何使用官方教程开发Docker中的Django应用程序: https : //docs.docker.com/compose/django/ 我已经成功运行了教程,并且 docker-compose run web django-admin.py startproject composeexample . 创build图像docker-compose up运行应用程序 问题是: 我经常使用python manage.py shell以shell模式运行Django,但是我不知道如何用docker来实现。

无法访问在Docker上find的文件(无法打开stream:连接超时)

我有以下的Docker容器设置来为我的CMS提供动力,但是我在extensions卷中托pipe的PHP脚本中遇到了一些主要问题。 version: '2' services: bolt: image: rossriley/docker-bolt:3.2 network_mode: bridge environment: – BOLT_TITLE=Red Moon Workshop ports: – 80:80 volumes: – ./db-data:/var/www/html/app/database – ./files:/var/www/html/public/files – ./app/config:/var/www/html/app/config – ./public/theme/redmoon:/var/www/html/public/theme/redmoon – ./extensions:/var/www/html/extensions restart: always 在我的extensions卷内,我有一个PHP脚本,它从存储在同一主机中的文件中读取头文件。 脚本通常稍微复杂一些,但是我把它简化为一个失败点: $image = 'http://img.gdocker.com/php/1497665310_slide-splash-bg.png'; $headers = get_headers($image); return $headers; 该错误抱怨说由于超时而无法打开stream,但是如果我在浏览器中打开URL,它就可以正常工作。 An exception has been thrown during the rendering of a template ("Warning: get_headers(http://img.gdocker.com/php/1497665310_slide-splash-bg.png): failed […]

无法在Docker容器和java进程中parsing主机

我正在运行基于运行java进程的高山linux(GoCD服务器)的docker映像。 java进程本身试图运行一些代码来克隆本地git仓库,但是我得到了一个Couldn't resolve hostexception。 我试图从容器内使用'git clone'手动克隆git仓库,并没有问题。 另外,我可以通过运行ping my-service-url.com而没有问题,也可以从主机上ping my-service-url.com相同的结果,从而在ping my-service-url.com容器内ping域。 看来Java解决名称有一些困难,但我不知道如何解决它。 我尝试用RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf创build一个新映像。 我读了另一个问题,可以解决它,但没有运气。 整个Dockerfile如下所示: FROM gocd/gocd-server:v17.5.0 RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf ADD json-config-plugin-0.2.jar /godata/plugins/external/json-config-plugin-0.2.jar ENTRYPOINT ["/docker-entrypoint.sh"] 我在AWS ECS上运行,ipv4转发设置为1,networking模式为bridge 。 我正在用尽想法。

如何将种子数据放入SQL Server泊坞窗图像?

我有一个使用ASP.NET Core和SQL Server的项目。 我正在试图把所有东西放在docker集装箱。 对于我的应用程序,我需要在数据库中有一些初始数据。 我能够从微软(微软/ mssql-server-linux)使用dockerSQL服务器图像,但它(显然)是空的。 这是我的docker-compose.yml: version: "3" services: web: build: .\MyProject ports: – "80:80" depends_on: – db db: image: "microsoft/mssql-server-linux" environment: SA_PASSWORD: "your_password1!" ACCEPT_EULA: "Y" 我有一个SQL脚本文件,我需要在数据库上运行以插入初始数据。 我find了一个mongodb的例子 ,但我找不到可以使用哪个工具来代替mongoimport。

Dockerregistry中的所有存储库在docker守护程序重新启动后都会被移除(docker-for-mac)

我可以成功地创build一个dockerregistryv2服务使用: docker service create然后我推动一些如果我的图像使用docker推。 当我通过curling localhost:5000/v2/_catalog检查registry时,我得到了所有推送的存储库。 我甚至用这个registry成功地创build了一个堆栈。 问题是每当我重新启动docker(目录或通过重新启动我的Mac)我所有的存储库从registry中删除。 我检查了Linux,但没有任何问题。 难道我做错了什么? 我只是想在这里发送这个问题,然后在Docker for mac github回购中打开任何问题。 我正在使用Docker for Mac version 17.09.0 CE (build 19611)

如何确保docker容器中的MySQL使用docker-entrypoint-initdb.d中的脚本进行初始化?

我的dockerfile: FROM mysql/mysql-server:5.7 COPY ./create_db.sql /docker-entrypoint-initdb.d COPY ./create_tables.sql /docker-entrypoint-initdb.d COPY ./insert_types.sql /docker-entrypoint-initdb.d COPY ./my.cnf /etc/mysql/conf.d RUN chmod -R 755 /docker-entrypoint-initdb.d EXPOSE 1307 输出mysql容器的日志: docker logs 8742 [Entrypoint] MySQL Docker Image 5.7.20-1.1.2 [Entrypoint] Starting MySQL 5.7.20-1.1.2 这似乎…短。 (假冒btw密码) 容器中init文件夹的内容; 以下命令来自容器内部: bash-4.2# ls -alh docker-entrypoint-initdb.d total 20K drwxr-xr-x 1 root root 4.0K Nov 3 20:09 . drwxr-xr-x […]

多主机Docker在Swarm上组成应用程序

我有一个简单的撰写文件,我有三个服务A,B和C.A和B都依赖于C(即有links到C)。 这里是一个来自docker-compose.yml的简化摘录: kafka: image: spotify/kafka environment: ADVERTISED_PORT: 9092 ports: – "2181:2181" – "9092:9092" ServiceA: image: elsoufy/myimage command: ./mycommand -role producer -queue kafka:9092 ports: – "8080" ServiceB: image: elsoufy/myimage command: ./mycommand -role consumer -queue kafka:9092 我在AWS上设置了一个Docker swarm,并通过consul key-store启用覆盖networking。 我一直在挣扎一段时间才能正常工作(我不得不手动升级机器的内核到linux 3.16 )。 我使用的是Docker 1.9 Client: Version: 1.9.0 API version: 1.21 Go version: go1.4.3 Git commit: 76d6bc9 Built: […]

如何“添加”代理部分将registryconfiguration为直通caching?

我想configuration一个本地通过registrycaching,并按照此文档: https : //github.com/docker/distribution/blob/master/docs/mirror.md#configuring-the-cache 它说我需要添加这样一个部分: proxy: remoteurl: https://registry-1.docker.io username: [username] password: [password] 我有几个问题: 什么是https://registry-1.docker.io ? 这是一个公共registry,是相同的官方dockerregistry? 什么是正确的url,如果我想caching连接到官方registry? 如何“添加”这个部分? 关于“如何添加这个部分”,这个文档https://docs.docker.com/registry/configuration/说了两种方法: 传递-e REGISTRY_PROXY_REMOTEURL=http://??? 覆盖configuration 提供一个config.yml来完全覆盖默认值 看来这两种方法不适合,我需要一个“添加”的方法,我该怎么做呢?

docker构成试图拉现有的图像

我有一个docker-compose.yml文件,它定义了一个服务及其图像。 service: image: my_image 现在,我运行docker-compose up我收到以下消息: $ docker-compose up Pulling service (my_image:latest)… Pulling repository docker.io/library/my_image ERROR: Error: image library/my_image:latest not found 这是正确的,在这种情况下, my_image不在docker集线器上。 但是我用docker build -t my_image .创build了它docker build -t my_image . (在一个不同的文件)之前,它被列在docker images 。 有什么我想念告诉docker组成,不要在docker.ioregistry/集线器中寻找图像? docker客户端和服务器版本是1.9.1 ,docker-compose版本是1.5.2 。 我正在通过远程计算机上的HTTP-API运行docker-compose(以及docker),不知道这是否有什么区别。