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.是什么赋予了?
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 标志有什么作用呢?
现在的日志目前是13GB,我不知道删除日志是否安全,以及如何使日志变小
__CODE__
我在我的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 postgresdb和postgresdbdata服务(基本上创建了数据库,并增加了一个用户):
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/?
谢谢!
我在 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) 我有一个运行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然后重新启动它.
我的第一个问题是如何重新连接到这个容器?
我有另一个问题,这是在生产中更新正在运行的容器的常规方法吗?
设置: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在断点上停下来呢?
我正在尝试运行在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)
如果我在我的本地机器上运行此代码,我可以把它SIGINT用Ctrl-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,而他们是在一个码头工人容器..为什么不去会得到的信号? …
我无法使用以下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) docker-machine 使用最新的docker引擎版本创建新实例.
是否可以指定docker引擎版本?
该docker-machine create命令有一个--engine-install-url选项.但是,我无法找到特定于版本的URL(https://get.docker.com/).
boot2docker ×10
docker ×10
dockerfile ×1
git ×1
git-clone ×1
go ×1
macos ×1
nginx ×1
node.js ×1
phpstorm ×1
postgresql ×1
sqlalchemy ×1
ubuntu ×1
xdebug ×1