Tag: 谷歌 计算引擎

DNS在Google Compute Engine节点中运行的Docker镜像不起作用

我有一个在Google Compute Engine节点上运行的Python程序,通过Kubernetes部署在Docker镜像上。 程序执行的一部分涉及连接到几个外部数据库,其中之一是BigQuery。 昨天该程序自发地开始DB插入失败(最后一次提交已稳定运行了几天)。 该错误表明该计划没有解决地址www.googleapis.com。 我连接到pod,并意识到DNS服务器不工作; ping到google.com甚至没有经过。 我检查了Docker镜像的resolv.conf文件,并在nameserver属性上find了一个本地IP地址。 我尝试了ping它,但它不会回应。 我将IP地址更改为Google的公有DNS,但似乎由于BigQuery客户端通过应用程序默认凭据获取证书的方式,客户端尝试访问名为metadata.google.internal的服务器,该服务器不能parsing在公共DNS中。 所以我再次将IP地址更改为计算引擎节点的DNS地址,因为它显示在其resolv.conf文件中。 这解决了这个问题。 但是,我现在必须在每次重新部署Docker映像时都做同样的更改,这非常烦人。 我很想知道Docker如何决定映像的DNS地址,以及为什么它能正常工作,并突然停止工作。 有任何想法吗? 谢谢一堆。

如何在Google Compute Engine上正确运行Docker(自动重启)

我希望有人能告诉我如何在Google Compute Engine上正确运行Docker。 现在我使用这个命令: docker run –publish 80:8080 –name myContainerName –restart=always MYDOCKERIMAGE 问题是,计算引擎经常崩溃(我认为?),所以每隔1-2天我需要连接(SSH)计算引擎实例,因为Docker容器将不会重新启动,除非我这样做…

自动重新启动Google Compute Engine上的Docker容器

我有两个Google Compute Engine实例,一个是用Apache运行Python,另一个是在Go上运行。 Python / Apache项目工作得很好,全天候运行,而Docker项目一直失败。 我使用以下命令启动了Docker容器: docker run –publish 80:8080 –name CONTAINERNAME –restart=always IMAGENAME 每当容器停止工作,似乎每天发生一次,那么它将无法重新启动,直到我SSH进入计算引擎实例。 一旦我已经SSH到进入实例,然后我只是与docker ps检查,看到它再次运行没有做任何事情.. 所以我的问题是,为什么docker容器无法重新启动,直到我SSH进入计算引擎实例? 我正在执行正确的命令吗?

无法连接到运行在计算引擎上的docker容器上的mongodb

使用docker-compose我启动了两个docker容器,一个是包含mongodb的第二个包含java应用程序的google vm (compute engine) 。 该应用程序很好地连接到数据库,我可以通过URL http://myvm:8080查看结果。 现在,当我想要在本地启动相同的应用程序连接到相同的数据库时,出现连接错误。 我把bind_ip属性设置为0.0.0.0来连接远程服务器,我在日志中看到这个configuration已经被使用了,但是不起作用。 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "0.0.0.0", port: 27017 } } 虚拟机的所有端口和协议都可以访问。 在我尝试在mongodb上连接时发生的错误之下: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=vm_ip:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused […]

Google云项目中的跨源资源共享错误

我在GCloud Compute Engine的虚拟机中托pipe了一个网站。 我也通过虚拟机镜像的SSH安装了Docker,并build立了一个在某个端口(与网站IP相同)上监听GET请求的容器。 问题是从我的网站到Docker容器的请求最终导致下面的CORS错误。 我试图通过docker容器的环境variables来启用CORS,但是没有奏效。 请求的资源上没有“Access-Control-Allow-Origin”标题。 关于如何解决这个问题的任何想法?

使用java jdbc套接字工厂从本地docker容器内连接到cloudsql实例

我很难让我的jar从本地docker容器内连接到cloudsql。 如果我在容器外面运行jar: export GOOGLE_APPLICATION_CREDENTIALS=<path to credentials.json> jar -jar <myjar.jar> 那么它工作正常。 但是,当我运行这样的docker: docker run -d -p MY_SERVER_PORT:MY_SERVER_PORT -p 3306:3306 -v <local path to credentials.json>:<path in container> <image name> 我在容器日志中得到以下内容: Nov 09, 2017 10:37:15 AM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {0.0.1} Nov 09, 2017 10:37:15 AM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Nov 09, 2017 […]

在Google计算引擎上使用Neo4j的默认主机

在启动neo4j时,我被带到浏览器页面,该页面有三个input: host , username和password 主机的价值应该是什么? 到目前为止, locahost:7474不工作,这是我所期望的。 我习惯于在第一次password时看到username和password ,两者的默认值都是neo4j 我用来启动实例的命令: sudo docker run \ –publish=7474:7474 \ –volume=$HOME/neo4j/data:/data \ –volume=$HOME/neo4j/logs:/logs \ neo4j 命令起作用,给: Starting Neo4j. 2017-12-13 03:22:34.661+0000 INFO ======== Neo4j 3.0.12 ======== 2017-12-13 03:22:34.681+0000 INFO No SSL certificate found, generating a self-signed certificate.. 2017-12-13 03:22:35.163+0000 INFO Starting… 2017-12-13 03:22:35.631+0000 INFO Bolt enabled on 0.0.0.0:7687. 2017-12-13 03:22:37.966+0000 […]

如何使用谷歌云计算引擎启动脚本自动克隆Docker容器内的git仓库。 只能交互使用

我开始这样一个谷歌云计算引擎: gcloud compute instances create cloudml \ –image-family=container-vm \ –image-project=google-containers \ –machine-type=n1-highmem-8 \ –metadata-from-file startup-script=Job.sh 我的启动脚本的顶部看起来像 #!/bin/bash #get git keys gsutil cp -r gs://[mybucket]/.ssh/id_rsa ~/.ssh/ gsutil cp -r gs://[mybucket]/.ssh/id_rsa.pub ~/.ssh/ chmod 400 ~/.ssh/id_rsa #run docker container and pass keys sudo docker run -it -v /home/ben/.ssh/:/root/.ssh/ gcr.io/api-project-773889352370/rwhales bin/bash #add git to known hosts. ssh-keyscan github.com >> […]

使用Docker部署Web服务应用程序

我正在使用Docker将我的Web服务部署到GCE,并按照以下说明进行操作: https : //blog.golang.org/docker 我已经在Bitbucket上创build了一个私有存储库,做了一个自动构build,并且我能够运行我的构build“docker run命名空间/回购”记得事先(“)运行”dockerlogin“。 现在,创buildGCE实例成功没有错误,但我的图像没有运行(使用“sudo docker ps”) 如何设置containers.yaml来安装私有Docker镜像? 以下是我的containers.yaml文件: version: v1beta2 containers: – name: my-webservice image: namespace/repo:latest ports: – name: http hostPort: 80 containerPort: 8080

使用正在运行的shell修改golang Docker容器

我正在使用Docker将我的Web服务部署到Google Compute Engine,并按照以下说明进行操作: https : //blog.golang.org/docker 我想要在golang容器中安装ffmpeg,我的方法是像访问shell一样 docker运行-t -i my-webservice / bin / bash 与ubuntu:14.04相反,我无法访问bash shell。 怎么可能? 我也发现了一个图像,其中ffmpeg已经被configuration和安装( https://registry.hub.docker.com/u/cellofellow/ffmpeg/ )。 是否有可能从golang容器访问容器,或者我必须将ffmpeg安装到我自己的docker映像中?