标签: boot2docker

无法拉码头图片:无主机路由

boot2docker在OSX上使用时,我无法从Docker Hub中提取新图像:

$ docker run mysql
Unable to find image 'mysql' locally
Pulling repository mysql
2014/06/24 16:58:18 Get https://index.docker.io/v1/repositories/mysql/images: dial tcp: read udp 192.168.0.1:53: no route to host
Run Code Online (Sandbox Code Playgroud)

我仍然可以使用浏览器访问该URL或curl.是什么赋予了?

macos docker boot2docker

3
推荐指数
1
解决办法
2623
查看次数

-c 是什么意思?

  docker run -d ubuntu:14.04 /bin/bash -c "while true; do echo hello world;done"

  docker run -d ubuntu:14.04 /bin/bash "while true; do echo hello world; done"
Run Code Online (Sandbox Code Playgroud)

我两个都试了。

在第 2 种情况下,容器立即停止。所以docker ps结果没有。而docker ps -a导致它。

在情况 1 中,docker ps列出容器。它没有停止。

那么 -c 标志有什么作用呢?

docker boot2docker

3
推荐指数
2
解决办法
1715
查看次数

删除在/ var/lib/docker/containers/HASH中生成的docker日志是否安全

现在的日志目前是13GB,我不知道删除日志是否安全,以及如何使日志变小 __CODE__

docker boot2docker

3
推荐指数
1
解决办法
3887
查看次数

docker-compose:postgres数据不持久

我在我的docker-compose文件中有一个使用postgres图像的主服务,虽然我似乎成功连接到数据库,但我写的数据并没有超出容器的生命周期(我所做的是基于本教程).

这是我的docker-compose档案:

main:
  build: .
  volumes:
    - .:/code
  links:
    - postgresdb
  command: python manage.py insert_into_database
  environment:
    - DEBUG=true


postgresdb:
  build: utils/sql/
  volumes_from:
    - postgresdbdata
  ports:
    - "5432"
  environment:
    - DEBUG=true


postgresdbdata:
  build: utils/sql/
  volumes:
    - /var/lib/postgresql
  command: true
  environment:
    - DEBUG=true
Run Code Online (Sandbox Code Playgroud)

这里是我使用了该Dockerfile postgresdbpostgresdbdata服务(基本上创建了数据库,并增加了一个用户):

FROM postgres

ADD make-db.sh /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

如何在main服务运行完毕后将数据保留下来,以便将来能够使用它(例如当我调用类似的东西时python manage.py retrieve_from_database)?是/var/lib/postgresql即使正确的目录,并且将boot2docker有机会获得它因为它明确限定为/Users/

谢谢!

postgresql sqlalchemy docker boot2docker docker-compose

3
推荐指数
1
解决办法
3426
查看次数

Dockerfile 'RUN git clone' 删除中间容器

我在 Windows 7 上使用 Boot2Docker 通过 Dockerfile 构建我的开发环境。当我运行时docker build -t myimage dir/of/docker/file,一切正常,直到这一行:

RUN git clone --verbose https://github.com/zsh-users/antigen ~/.antigen/antigen
Run Code Online (Sandbox Code Playgroud)

这一行的输出是:

Step 12 : RUN git clone --verbose https://github.com/zsh-users/antigen ~/.antigen/antigen
---> Running in 26cba91e912a
Cloning into '/root/.antigen/antigen'...
POST git-upload-pack (302 bytes)
---> e0012659884b
Removing intermediate container 26cba91e912a
Successfully built e0012659884b
Run Code Online (Sandbox Code Playgroud)

克隆(公共存储库的)被删除,容器中不存在 ~/.antigen/antigen。“克隆到...”是红色的,所以我认为命令有问题。但是如果我在容器的外壳(由docker run -it myimage)中运行它,它会克隆它。

我做错了什么,或者我可以做一些设置以git clone在 dockerfile 中使用吗?这是它的完整内容:

FROM debian:testing
MAINTAINER BimbaLaszlo

RUN apt-get update

RUN apt-get install -y curl

RUN apt-get install -y gcc …
Run Code Online (Sandbox Code Playgroud)

git git-clone docker boot2docker

3
推荐指数
1
解决办法
2364
查看次数

如何重新连接到docker容器

我有一个运行ubuntu的docker容器和一个简单的节点快速站点.

我按如下方式连接到容器

docker run -i -t -p 8080:3000 node-express
Run Code Online (Sandbox Code Playgroud)

容器中的节点应用程序正在以pm2运行,因此一旦我退出容器,它就会继续运行.

CONTAINER ID        IMAGE
f32de2737e80        node-express:latest
Run Code Online (Sandbox Code Playgroud)

现在假设我想对我的应用程序进行更新.

我假设我需要连接到容器,停止节点应用程序,并进行更新,例如 git pull然后重新启动它.

我的第一个问题是如何重新连接到这个容器?

我有另一个问题,这是在生产中更新正在运行的容器的常规方法吗?

node.js docker boot2docker

3
推荐指数
1
解决办法
1148
查看次数

Xdebug与PHPStorm和Docker容器

设置:Windows 10; Docker在Hyper-V上运行Boot2Docker; PHPStorm 9

VM上的Web服务器是Nginx.我已经为php5-fpm配置了xdebug.ini:

zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_port=9000
xdebug.remote_connect_back=On
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
Run Code Online (Sandbox Code Playgroud)

如果我设置断点并重新加载页面,我会从PHPStorm中的Xdebug获得传入连接:

传入连接

我想知道只显示了一个文件而不是整个项目更大.如果我接受连接,我可以调试第一行,但它不会在我的断点上停止并创建一个服务器条目,如下所示:

服务器 什么是主机空的奇怪. 我已经使用正确的映射添加了服务器,但它被忽略了.

那么如何让Xdebug在断点上停下来呢?

xdebug nginx phpstorm docker boot2docker

3
推荐指数
1
解决办法
1759
查看次数

在Docker中向Golang应用程序发送信号

我正在尝试运行在docker容器内的golang编写的服务器.例如:

package main

import "net/http"

func main() {
  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello"))
  })
  http.ListenAndServe(":3000", nil)
}
Run Code Online (Sandbox Code Playgroud)

如果我在我的本地机器上运行此代码,我可以把它SIGINTCtrl-C,它会关闭应用程序.当我在一个docker容器中运行它时,我似乎无法用它来杀死它Ctrl-C.

# Dockerfile
FROM ubuntu:14.04

RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y golang

ENV GOPATH /go

COPY . /go/src/github.com/ehaydenr/simple_server

RUN cd /go/src/github.com/ehaydenr/simple_server && go install

CMD /go/bin/simple_server
Run Code Online (Sandbox Code Playgroud)

然后我继续使用docker向容器发送信号.

docker kill --signal=INT 9354f574afd4
Run Code Online (Sandbox Code Playgroud)

仍在运行...

docker kill --signal=TERM 9354f574afd4
Run Code Online (Sandbox Code Playgroud)

仍在运行...

docker kill --signal=KILL 9354f574afd4
Run Code Online (Sandbox Code Playgroud)

终于死了.

我没有在代码中捕获任何信号而忽略它们.我甚至尝试增加上面的代码来捕获信号并将它们打印出来(它可以在我的主机上运行,​​但是当它在容器中时,就像信号永远不会进入程序一样).

有谁之前经历过这个吗?我还没有尝试过这样的事情在另一种语言,但我能杀服务器(例如mongo,nginx)使用Ctrl-C,而他们是在一个码头工人容器..为什么不去会得到的信号? …

go docker boot2docker dockerfile

3
推荐指数
1
解决办法
1147
查看次数

docker build失败,无法解析'archive.ubuntu.com'

我无法使用以下Dockerfile构建我的图像:

FROM ubuntu

RUN apt-get -y update && apt-get -y install \
nodejs npm ssh

# cache npm install when package.json hasn't changed
WORKDIR /tmp
ADD package.json package.json
RUN npm install
RUN npm install -g pm2

RUN mkdir /sparrow
RUN cp -a /tmp/node_modules /sparrow

WORKDIR /sparrow
ADD . /sparrow/
RUN npm run build

# ssh keys
WORKDIR /root
RUN mv /sparrow/.ssh /root/

# upload js and css
WORKDIR /sparrow/build
# UPLOAD TO S3!

# go back to /sparrow
WORKDIR /sparrow …
Run Code Online (Sandbox Code Playgroud)

ubuntu docker boot2docker

3
推荐指数
1
解决办法
8793
查看次数

使用docker machine指定docker engine版本

docker-machine 使用最新的docker引擎版本创建新实例.

是否可以指定docker引擎版本?

docker-machine create命令有一个--engine-install-url选项.但是,我无法找到特定于版本的URL(https://get.docker.com/).

docker boot2docker docker-machine

3
推荐指数
1
解决办法
938
查看次数