我正在尝试在使用 docker 的 Windows 中运行某个应用程序。由于应用程序是一个 shell 脚本,我使用 cygwin 终端。作为 docker 的新手,我对它的工作原理没有明确的想法。
使用 boot2docker,我在 Windows 7 中打开了一个 docker 终端和一个 cygwin 终端来运行脚本。
但是当我运行脚本时,说
./xyz init
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
trying to run docker resulted in exit code 127
Run Code Online (Sandbox Code Playgroud)
你能告诉我我应该通过哪些基本的急救来解决这个问题吗?
该应用程序来自vision.ai,名为vmx。有关该应用程序的信息在这里。
非常感谢您的帮助。
我在OS X上使用boot2docker并克隆了以下repo:
https://github.com/enokd/docker-node-hello
它基本上有一个Dockerfile和一个打印hello world的非常简单的快速应用程序.当我构建并运行图像时,一切都运行良好,但当然如果我对我的Mac上的index.js进行任何更改,那么这一切都不会反映在我的运行图像中.我似乎无法找到关于我如何设置docker的任何参考,以便我可以在我的开发环境中运行它以自动获取我的源代码更改,所以我觉得我"做错了".有什么建议?
这是我当前正在运行它的方式(我没有使用Vagrant,并且不确定这是否有任何区别):
$ docker build -t gasi/centos-node-hello .
$ docker run -p 49160:8080 -d gasi/centos-node-hello
$ curl localhost:49160
Run Code Online (Sandbox Code Playgroud)
更新:添加了我最终做的答案.
更新:使用boot2docker 1.3+和图2添加了更多当前答案.
我正在尝试使用Vagrant 1.6的Docker提供程序,而我似乎遇到了麻烦.我可以成功启动Docker容器和来宾操作系统,但后来我无法访问我从主机操作系统中提取的容器中的服务.这是我的Vagrantfile:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.network :forwarded_port, guest: 8000, host: 8000
config.vm.define "icecast" do |v|
v.vm.provider "docker" do |d|
d.image = "moul/icecast"
d.ports = ["8000:8000"]
d.env = {
# SOURCE_PASSWORD: 'password',
ADMIN_PASSWORD: 'password',
# PASSWORD: 'password',
# RELAY_PASSWORD: 'password'
}
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的理解是,vagrant up --provider=docker在OS X上运行将启动运行boot2docker的VM,然后运行我的容器.运行vagrant docker-logs似乎确认我的容器已创建并且服务已启动,但现在我无法终身了解如何从我的OS X主机访问该服务.如果我使用标准的VirtualBox提供程序,我希望该config.vm.network :forwarded_port指令能够处理转发,但添加它似乎没有任何区别.
要从OS X主机访问此服务,我需要做什么?
更新:作为参考,这里是图像的Dockerfile:https://github.com/moul/docker-icecast/blob/master/Dockerfile
我通过virtualbox在windows上运行boot2docker 1.4.1.我支持MITM https证书的代理.我通过添加以下行来配置代理/var/lib/boot2docker/profile:
export HTTP_PROXY=<proxyhost>:80
export HTTPS_PROXY=<proxyhost>:80
DOCKER_TLS=no
EXTRA_ARGS="--insecure-registry index.docker.io"
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时,docker@boot2docker:~$ docker run hello-world我得到了
Unable to find image 'hello-world:latest' locally
Pulling repository hello-world
FATA[0006] Get https://index.docker.io/v1/repositories/library/hello-world/images
: x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)
请帮我弄清楚忽略证书错误的正确方法.谢谢!
我在Windows 7上使用VirtualBox 5.0.6安装了Docker工具箱1.8.3.
在Docker Quickstart Terminal启动期间创建的默认虚拟机有一个已定义的共享文件夹.是否可以将其他共享文件夹持久添加到此虚拟机,例如在主机上安装驱动器?c:\Usersd:\
我正在尝试使用boot2docker/Virtualbox设置开发环境.使用docker容器在主机上共享文件夹可以正常工作,但由于它是通过Virtualbox共享的,因此inotify不会在容器内触发(并且不会重新加载代码).
有没有办法使用boot2docker将源文件夹放入docker镜像,仍然会在容器中触发inotify?我宁愿不使用轮询,因为在Virtualbox共享中使用轮询在主机上的CPU成本很高.
我尝试在mac终端上使用此命令在mac os x 10.10.2上使用mongodb官方docker镜像:
docker run -v /Users/john/data/db:/data/db -p 27017:27017 mongo --smallfiles
Run Code Online (Sandbox Code Playgroud)
但它退出时出现此错误日志:
2015-04-11T10:53:19.709+0000 I JOURNAL [initandlisten] journal dir=/data/db/journal
2015-04-11T10:53:19.711+0000 I JOURNAL [initandlisten] recover begin
2015-04-11T10:53:19.711+0000 I STORAGE [initandlisten] In File::open(), ::open for '/data/db/journal/lsn' failed with errno:1 Operation not permitted
2015-04-11T10:53:19.711+0000 I - [initandlisten] Assertion failure f.is_open() src/mongo/db/storage/mmap_v1/dur_journal.cpp 597
2015-04-11T10:53:19.713+0000 I CONTROL [initandlisten]
0xf69069 0xf09861 0xeeed9e 0xd2b8f7 0xd36852 0xd37561 0xd37a90 0xd254b6 0xa9b9f9 0x824220 0x7f13c4 0x7f6dbae1bead 0x822459
----- BEGIN BACKTRACE -----
{"backtrace":[{"b":"400000","o":"B69069"},{"b":"400000","o":"B09861"},{"b":"400000","o":"AEED9E"},{"b":"400000","o":"92B8F7"},{"b":"400000","o":"936852"},{"b":"400000","o":"937561"},{"b":"400000","o":"937A90"},{"b":"400000","o":"9254B6"},{"b":"400000","o":"69B9F9"},{"b":"400000","o":"424220"},{"b":"400000","o":"3F13C4"},{"b":"7F6DBADFD000","o":"1EEAD"},{"b":"400000","o":"422459"}],"processInfo":{ "mongodbVersion" : "3.0.1", "gitVersion" : "534b5a3f9d10f00cd27737fbcd951032248b5952", "uname" : { …Run Code Online (Sandbox Code Playgroud) 我正在使用我的Mac上的docker-compose正式使用WordPress Docker镜像(使用boot2docker).我需要进行一次性数据导入.我不知道该怎么做.如何将数据导入数据库容器?
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
volumes:
- .:/var/www/html/wp-content/themes/my-theme-name
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
Run Code Online (Sandbox Code Playgroud) 我是Docker的新手,在Windows 7上使用boot2docker.
当我尝试通过spotify maven插件配置Docker构建时,我被要求设置以下env变量:
DOCKER_HOST
DOCKER_CERT_PATH
DOCKER_TLS_VERIFY
Run Code Online (Sandbox Code Playgroud)
配置成功但不确定 DOCKER_TLS_VERIFY和DOCKER_CERT_PATH变量有什么作用?
在Docker容器中运行PostgreSQL数据库时,官方PostgreSQL Docker Image 的文档指定应在环境变量中设置管理员密码,如:
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
Run Code Online (Sandbox Code Playgroud)
对于那些不想在脚本中对纯文本密码进行硬编码的人,是否有更安全的选择需要考虑?
boot2docker ×10
docker ×9
cygwin ×1
dockerfile ×1
inotify ×1
mongodb ×1
node.js ×1
postgresql ×1
vagrant ×1
vagrantfile ×1
virtualbox ×1