我在我的Mac上使用Boot2Docker 1.3.0,到目前为止我很高兴使用它.但是现在我想连接到一个http容器(暴露端口8080),而不是从我的本地机器连接到本地网络中的另一台机器?如果我在本地进行,我只是使用,http://192.168.59.103:8080所以我使用的是docker主机的ip地址.这不适用于我本地网络中的其他计算机,但使用我的mac的ip地址也不起作用.我很确定这个问题有一些解决方案,但我找不到任何解决方案.它不是那么难吗?我想要的是http://[IP-Address-of-mac]:8080从本地网络中的另一台主机发出请求.我想我必须在我的本地机器上设置一些路由规则吗?愿有人告诉我该怎么办?提前致谢.
最好的祝福
萨沙
docker ps -aq
Run Code Online (Sandbox Code Playgroud)
仅显示7-9张图片.
/var/lib/docker/graph
Run Code Online (Sandbox Code Playgroud)
给我看了很多图像.
当我创建文件时,由于系统完全错误而导致写入错误.我试图创建符号链接.但是我无法移动所有的码头工作者.
删除/ var/lib/docker/graph下的所有内容是否合适?除了创建符号链接和扩展磁盘之外,还有哪些其他可能性?我宁愿删除不必要的东西.
<none> <none> 02a16288ef14 6 days ago 773.3 MB
<none> <none> 21a606deee7e 6 days ago 773.3 MB
<none> <none> 8a38f2888018 6 days ago 773.2 MB
<none> <none> f41395b7637d 6 days ago 773.3 MB
<none> <none> 8b82d707167c 6 days ago 773.3 MB
Run Code Online (Sandbox Code Playgroud) 我想玩docker所以我创建了自己的2容器,nginx和php.两个容器都已成功构建并在docker hub上发布.之后我在我的项目文件夹中创建了一个fig.yml.如果我fig up -d在我的终端中运行,那么我收到以下错误:
Recreating playground_php_1...
Cannot start container e087111c...: [8] System error: no such file or directory
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以解决这个问题吗?
这是我的fig.yml:
web:
image: mc388/docker-nginx:latest
ports:
- "80:80"
- "443:443"
links:
- php
volumes:
- ./logs/nginx:/var/log/nginx
volumes_from:
- php
php:
image: mc388/docker-php:latest
volumes:
- .:/var/www/
Run Code Online (Sandbox Code Playgroud)
以下是两个docker容器配置的链接:
我在Windows上安装了boot2docker.我试图在以下链接(https://github.com/boot2docker/boot2docker-cli/issues/230)的帮助下配置代理,但它不起作用.
当我执行时boot2docker download,我有以下错误:
boot2docker download
Latest release for github.com/boot2docker/boot2docker is v1.6.0
Downloading boot2docker ISO image...
error in run: Failed to download ISO image: Get https://s3.amazonaws.com/github-cloud/releases/14930729/0573f322-e442-11e4-8500-b1bbe904b032.iso?response-content-disposition=attachment%3B%20filename%3Dboot2docker.iso&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1430303112&Signature=oTercMri%2FkqD9cbA315JhNHzehk%3D:
Proxy Authentication Required
Run Code Online (Sandbox Code Playgroud) 我想在Mac OS X上运行Docker中的Django应用程序.我已经使用get-started教程安装了docker .
我在docker-library中引用Django doc来构建映像,https://github.com/docker-library/docs/tree/master/django,我将Dockerfile添加到一个新的Django项目文件夹中
问题是我构建了映像并成功运行容器,但每当我访问container-ip:8000或http://localhost:8000它都无法正常工作时.谁有解决方案?
这是图像和容器信息; docker_test是我的应用程序
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker_test latest fd6ceebc0c58 13 hours ago 761.5 MB
django onbuild 9cbcfd71d759 30 hours ago 728.6 MB
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cbf98a73ea0a docker_test "python manage.py ru 26 minutes ago Up 26 minutes 0.0.0.0:8000->8000/tcp docker_app
Run Code Online (Sandbox Code Playgroud) 我正在使用Ansible将我的容器部署到生产环境中.在开发过程中,我想让Ansible在我的localhost而不是生产服务器上部署所有容器.
生产服务器在Ubuntu上运行,localhost是OS X和boot2docker.
我有2个库存文件,生产和localhost.我的目录结构如下:
.
|--inventories
| |localhost
| |production
|
|--group_vars
| |all
| |localhost
| |production
|
|--roles
| |--web
| |--tasks
|main.yml
|
|web.yml
Run Code Online (Sandbox Code Playgroud)
web.yml只定义主机组并分配web角色.
/roles/web/tasks/main.yml看起来像这样:
- name: Run web container
docker:
name: web
image: some/image
state: reloaded
...
tls_hostname: boot2docker
volumes:
- "/data/db:/data/db"
env:
...
tags:
- ...
Run Code Online (Sandbox Code Playgroud)
我需要tls_hostname有条件地设置,只有使用localhost库存; 同样,我只想在使用生产库存文件时设置卷.
对Ansible来说很新 - 似乎我没有以正确的方式接近这个,有更简单的方法吗?我想避免创建完全独立的任务来本地部署; 我只需要一种方法来定义音量和tls_hostname有条件的(否则保持默认设置)
我正在尝试在Windows计算机上安装Docker但是我收到此消息:
运行预创建检查...
(默认)在本地找不到默认的Boot2Docker ISO,下载最新版本...
预创建检查错误:"获取https://api.github.com/repos/boot2docker/boot2docker/发布/最新:拨打tcp 192.30.252.124:443:connectex:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败.
看看步骤'检查机器是否存在默认值'出错了...
按任意键继续......
有关如何解决此问题的任何建议?
我试图通过在 git bash 中运行 shell 脚本来在 Windows 7(带有 Oracle VM 的 Docker 工具箱)中构建一个 docker 容器,该脚本具有带有 rsync 的命令,如下所示:
rsync -a --exclude='*/node_modules' $PROJECT_PATH/project_name/src/ ./project_name/src
Run Code Online (Sandbox Code Playgroud)
和价值$PROJECT_PATH=/c/Users/yajnesh_rai/git
这是我在控制台中看到的:
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.2]
Run Code Online (Sandbox Code Playgroud)
一些在线文档说使用正斜杠作为没有驱动器名称的路径,我尝试了这种方式
$PROJECT_PATH=\\Users\\yajnesh_rai\\git
Run Code Online (Sandbox Code Playgroud)
这使得 rsync 工作,但无法复制文件,如下所示:
\Users\yajnesh_rai\git/project_name/src/folder_name/file_name: warning: directory does not exist.
Run Code Online (Sandbox Code Playgroud)
我按照本文中提到的步骤在 Windows 上安装了 rsync: https: //blog.tiger-workshop.com/add-rsync-to-git-bash-for-windows/
任何解决该问题的帮助都将受到赞赏!提前致谢
我在Docker中运行了一个Jenkins容器,我想在运行集成测试时使用这个Jenkins容器来启动其他Docker容器.
所以我的计划是在容器中安装Docker,但这对我来说似乎不太好用.我的Dockerfile看起来像这样:
FROM jenkins
MAINTAINER xxxx
# Switch user to root so that we can install apps
USER root
RUN apt-get update
# Install latest version of Docker
RUN apt-get install -y apt-transport-https
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
RUN sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
RUN apt-get update
RUN apt-get install -y lxc-docker
# Switch user back to Jenkins
USER jenkins
Run Code Online (Sandbox Code Playgroud)
该jenkins图片基于Debian Jessie.当我根据生成的图像在容器内启动bash终端时,例如:
docker images
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
FATA[0000] Get http:///var/run/docker.sock/v1.16/images/json: dial unix /var/run/docker.sock: no …Run Code Online (Sandbox Code Playgroud) 我已经设置了私有注册表docker run -t -i -p 5000:5000 registry,它可以从192.168.59.103:5000访问(我正在使用boot2docker).现在我已经拉了一个图像tutum/tomcat,当我尝试将image(docker push 192.168.59.103:5000/tomcat)标记为192.168.59.103:5000/tomcat后将其推入注册表中我面临以下错误,如下所示 -
FATA[0004] Error: v1 ping attempt failed with error: Get https://192.168.59.103:5000/v1/_ping: EOF. If this private regi
stry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 192.168.59.103:5000` to
the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag
; simply place the CA …Run Code Online (Sandbox Code Playgroud)