Tag:

无法使用Docker Compose运行rails控制台

我相当新的Docker,并开始使用Docker Compose在我的OS X 10.10机器上开发我的rails 4应用程序。 导轨应用程序工作正常,但如果我尝试使用下面的命令运行导轨控制台: docker-compose run web bundle exec rails console 要么 docker-compose run web rails console 我得到以下错误: 无法在任何来源findCFPropertyList-2.3.1运行bundle install来安装缺失的gems。 我试图做docker-compose run web bundle install ,但我继续得到相同的错误。 这背后的原因是什么? 以下是我的Dockerfile和docker-compose.yml。 Dockerfile FROM ruby:2.2.0 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs npm nodejs-legacy RUN npm install -g phantomjs RUN mkdir /myapp WORKDIR […]

数据库不会在docker中持久化

我知道我错过了这里非常基本的东西。 我已经看到了一些关于使用docker保存数据的老问题,但是我想我正在关注这里find的最新文档。 我有一个rails应用程序,我试图在docker中运行。 它运行良好,但每次我启动它,我得到ActiveRecord::NoDatabaseError 。 在创build数据库并迁移之后,应用程序运行良好,直到closures并重新启动它。 这里是我的docker文件: FROM ruby:2.3.0 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs ENV RAILS_ROOT /ourlatitude RUN mkdir -p $RAILS_ROOT/tmp/pids WORKDIR $RAILS_ROOT COPY Gemfile Gemfile COPY Gemfile.lock Gemfile.lock RUN gem install bundler RUN bundle install COPY . . 这里是我的docker-compose.yml文件 version: '2' services: db: image: postgres:9.4.5 app: build: . […]

当Docker镜像被拖动时,显示的ID是什么意思?

从DockerHub中拖出Docker镜像时,CLI会显示几个进度条,每个进度条都有不同的ID: ➜ docker pull training/sinatra Using default tag: latest latest: Pulling from training/sinatra a3ed95caeb02: Pull complete 6e71c809542e: Downloading [============> ] 17.3 MB/67.48 MB d196a7609355: Download complete 08f6dff5acea: Download complete ce65532003d0: Downloading [==============================> ] 19.24 MB/21.22 MB 54bcaa4d1a10: Downloading [=====> ] 25.39 MB/62.67 MB 8572ad96f6e1: Waiting 下载完成后,这些ID都不会显示为下载的映像标识: docker images REPOSITORY TAG IMAGE ID CREATED SIZE … […]

如何停止/重新启动docker集装箱而不会丢失更改?

我做了以下,并丢失了我的Docker容器中的所有更改的数据。 docker build -t <name:tag> . docker run *-p 8080:80* –name <container_name> <name:tag> docker exec (导入和处理一些文件,启动服务器来承载它们) 然后我想在不同的端口上运行它。 docker stop和docker run不起作用。 相反,我做到了 docker stop docker rm <container_name> docker run (与以前相同的参数) 重启之后,我看到1-3号容器发生的变化消失了,不得不重新运行导入。 下次如何正确执行此操作?

Docker进程死于“Killed”信息

在Docker容器中运行一个python脚本,看起来一切正常,看到一些STDOUT消息,大约5分钟后我得到一个Killed消息,没有进一步的解释,程序停止。 查询分贝这可能是一个磁盘空间问题,可能是OOM问题。 我不知道,但我不知道在哪里可以find关于这个杀人消息的日志,所以我可以find这个问题的根源。 任何想法这些日志是? 在Mac OSX上运行docker-machine。 这就是所有的消息说! root@c7b800e0f276:/opt/mymodule# python Python 2.7.13 (default, May 1 2017, 22:44:36) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from mymodule import model >>> model.run('2017-04-01') INFO:Deleting from input table. INFO:Inserting into input table. INFO:Querying input table for chunk. Killed root@c7b800e0f276:/opt/mymodule# exit 谢谢!

docker-compose up -d不会在docker-compose up时创build卷

这是预期的行为还是错误? 在运行docker-compose up ,我的卷是在本地机器上创build的。 但是在运行docker-compose -d时,它们不是。 这是造成问题的docker-compose文件中的一部分: test-mysql: image: mysql:5.7 container_name: test-mysql environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_DATABASE=test – MYSQL_USER=test – MYSQL_PASSWORD=root ports: – 3306:3306 volumes: – ../www/data/mysql:/var/lib/mysql 所以当第一次运行docker-compose up时,会创build../www/data/mysql文件夹。 但是,如果我用docker-compose up -d试试这个,文件夹不会被创build。

Grafana没有通过AJAX做出回应

我有Grafana设置在一个Docker容器(来自Docker repo的grafana/grafana图像),并将端口3000转发到我的本地主机。 我docker-compose.yml如下: version: '2.1' services: grafana: image: grafana/grafana ports: – 3000:3000 最初我也有链接到Graphite和一些卷和环境configuration(只有GF_SECURITY_ADMIN_PASSWORD ),但我想这没有关系。 我可以通过简单的curl调用来获得Grafana的回复: $ curl http://localhost:3000 <a href="/login">Found</a>. 但是,当我试图通过AJAX调用,它给了我一个奇怪的结果: $.ajax({url: 'http://localhost:3000', beforeSend: function(xhr, settings) {alert('before setting header'); xhr.setRequestHeader('Access-Control-Allow-Origin', '*'); alert('after setting header');}}); [many JSON fields] responseText:"" [many JSON fields] statusText: "error" [many JSON fields] 警报说,头被设置为接受来自任何来源的请求。 当我直接调用Docker容器地址时,会发生同样的情况(curl工作,但不是)。 在后台发生了什么? 为什么第二个请求不起作用? 如何通过AJAX调用从Grafana获得响应?

用`docker-compose run`和`docker-compose exec`调用的mysql客户端

为什么在使用docker-compose run时需要指定主机? 例如 docker-compose run db_container mysql -uuser -ppass db_name -h db_container 似乎是直接相当的 docker-compose exec db_container mysql -uuser -ppass db_name 当从第一个例子中省略主机名标志时,mysql失败,出现“无法连接到套接字”的错误。 这两个例子有什么区别?

所有的docker图像有最小的操作系统?

我正在尝试学习Docker和那个提到的在线资料。 我开始知道,我们可以拉出正式的图像中心,并运行一个容器。 您可以通过https://hub.docker.com/查看Repos,屏幕截图的一部分: 在这个图中,我们可以看到Ubuntu,httpd,mysql(等等)的官方图片。 我的问题是: 所有这些图像都有“最小的操作系统”,他们运行。 例如,如果我们考虑httpd映像,它是否具有运行所需的操作系统?

你如何退出docker – 组成了@ macOS?

在docker-compose之后,在windows上我用“CTRL + C”退出了,容器仍在运行。 当我在我的Mac上这样做,然后docker杀死我的容器:( 我现在用一个shell脚本来执行它,它执行docker-compose成“echo”,但是在一些容器上,脚本挂了。 你是怎样做的? 有没有最佳做法? (适合于Windows) 非常感谢。