我试图得到一个工作docker安装以下教程: http : //docs.docker.io/en/latest/installation/windows/
到目前为止,我得到的虚拟机运行一个手动下载的存储库(后面的github链接,并下载为zip,因为“git克隆”没有工作在我的公司代理,即使设置代理与“git conf –global http .proxy …“ – 它一直要求我authentication407,虽然我进入了我的用户&PW)。 现在我处于应该使用“docker run busybox echo hello world”(Section“Running Docker”)的状态。 当我这样做的时候,我首先被告知Docker没有安装(如教程的底部所示),然后,我用apt-get install docker得到它后,我得到“Segmentation Fault或者遇到严重错误。核心和堕落“。
现在做什么? 这是因为我没有使用git clone或者是docker安装有问题吗? 我读的地方,apt-get安装docker不安装我想要的docker,但一些GNOME的工具,我可以指定我的apt-request来获得正确的工具?
(上下文:2015年3月,Windows 7,后面的公司代理)
VonC/b2d
: 克隆它和:
env.bat.template
之后配置..\env.bat
, profile
'文件中添加你想要的别名, senv.bat
然后b2d.bat
。 然后您就可以在正确定制的boot2docker
环境中使用:
docker search/pull
时,ssh会话可以访问公司代理服务器后面的网络。 apt-get update/install
并且键入docker build时,Dockerfiles能够在公司代理后面访问互联网。 如果您是工作站的管理员,则可以在Windows上运行boot2docker安装 。
它目前来与:
然后,一旦安装:
c:\path\to\Boot2Docker For Windows\
在您的%PATH%
boot2docker init
boot2docker start
boot2docker ssh
exit
退出ssh会话,然后使用boot2docker ssh
返回:刚才输入的命令的历史记录将被保留。 boot2docker stop
实际上,如果打开Virtual Box GUI,则可以看到虚拟机启动或停止,然后键入DOS cmd会话boot2docker start
或stop
。
要理解的要点是, 你将需要管理2个主持人 :
%HOME%\.boot2docker\boot2docker.iso
=> %USERPROFILE%\VirtualBox VMs\boot2docker-vm\boot2docker-vm.vmdk
), 在代理期间 ,这意味着:
HTTP_PROXY
, HTTPS_PROXY
和NO_PROXY
环境变量(您可能已经有了它们,例如Virtual Box可以使用它们来检测Virtual Box的新版本) http_proxy
, https_proxy
和no_proxy
(注意,在Linux环境下小写):
docker search nginx
)。 dial tcp: lookup index.docker.io: no such host
docker pull
会给你一个dial tcp: lookup index.docker.io: no such host
。 /var/lib/boot2docker/profile
:它是profile
,而不是.profile
。 /home/docker/.ashrc
帐户 (在/home/docker/.ashrc
设置),如果需要执行任何其他需要访问互联网的命令( /home/docker/.ashrc
除外) RUN apt-get update
都会得到一个例如Could not resolve 'http.debian.net'
)。 RUN
命令之前先添加ENV http_proxy http://...
行。 一个好的no_proxy
设置是:
.company,.sock,localhost,127.0.0.1,::1,192.168.59.103
(与“。 .company
”的公司的域名,内部网站)
另一点要明白的是, boot2docker使用微小的核心 ,一个微小的Linux发行版(.iso文件只有26 MB)。
而且Tiny Core不提供持久性 (除了一些技术文件夹):如果你用你所有的首选设置和别名来修改你的~/.ashrc
…下一次boot2docker stop / boot2docker start
会恢复一个原始的 Linux环境, 走了 。
您需要确保VirtualBox具有下载的Oracle_VM_VirtualBox_Extension_Pack并添加到Virtual Box / File / Settings / Extension /添加了Oracle_VM_VirtualBox_Extension_Pack-4.x.yy-zzzzz.vbox-extpack
文件。
正如boot2docker中所记录的 ,您将可以访问(从您的Tiny Core ssh会话)到/c/Users/<yourLogin>
(即%USERPROFILE%
由Virtual Box共享)
最后要理解的是, 默认情况下没有端口被导出 :
-p 80:80
) The connection was reset
“。 对于第一点, docker run -it --rm --name my-apache-app -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
不会在没有-p 80:80
情况下工作在里面。
对于第二点,定义一个别名doskey vbm="c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" $*
,然后: – 如果Virtual boot2docker-vm
'尚未启动,则使用vbm modifyvm
– 如果Virtual boot2docker-vm
' 已经启动,则使用vbm controlvm
通常,如果我在boot2docker会话期间意识到端口80不能从Windows访问:
vbm controlvm "boot2docker-vm" natpf1 "tcp-port80,tcp,,80,,80"; vbm controlvm "boot2docker-vm" natpf1 "udp-port80,udp,,80,,80";
然后,只有这样,我才能访问http://127.0.0.1
为了方便使用boot2docker
:
%USERPROFILE%\prog\b2d
.profile
(直接在Windows中,在%USERPROFILE%\prog\b2d
),与您的设置和别名。 例如(我修改了原来的/home/docker/.ashrc
):
# ~/.ashrc: Executed by SHells. # . /etc/init.d/tc-functions if [ -n "$DISPLAY" ] then `which editor >/dev/null` && EDITOR=editor || EDITOR=vi else EDITOR=vi fi export EDITOR # Alias definitions. # alias df='df -h' alias du='du -h' alias ls='ls -p' alias ll='ls -l' alias la='ls -la' alias d='dmenu_run &' alias ce='cd /etc/sysconfig/tcedir' export HTTP_PROXY=http://<user>:<pwd>@proxy.company:80 export HTTPS_PROXY=http://<user>:<pwd>@proxy.company:80 export NO_PROXY=.company,.sock,localhost,127.0.0.1,::1,192.168.59.103 export http_proxy=http://<user>:<password>@proxy.company:80 export https_proxy=http://<user>:<password>@proxy.company:80 export no_proxy=.company,.sock,localhost,127.0.0.1,::1,192.168.59.103 alias l='ls -alrt' alias h=history alias cdd='cd /c/Users/<user>/prog/b2d' ln -fs /c/Users/<user>/prog/b2d /home/docker
(192.168.59.103通常是由boot2docker ip
返回的boot2docker ip
)
b2d.bat
%PATH%
创建并添加一个b2d.bat
脚本,它将:
boot2docker
docker
服务(已重新启动)和/home/docker
用户帐户复制正确的配置文件。 那是:
doskey vbm="c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" $* boot2docker start boot2docker ssh sudo cp -f /c/Users/<user>/prog/b2d/.profile /var/lib/boot2docker/profile boot2docker ssh sudo /etc/init.d/docker restart boot2docker ssh cp -f /c/Users/<user>/prog/b2d/.profile .ashrc boot2docker ssh
为了进入一个新的boot2docker会话,只要你想要的设置完全定义,只需输入:
b2d
你很好走:
docker search xxx
将工作(它将访问互联网) docker build
将工作(如果ENV http_proxy
指令在那里将访问互联网) %USERPROFILE%\prog\b2d
任何Windows文件都可以从~/b2d
修改。 vi
)从Windows会话中编写和修改相同的文件(比如一些Dockerfile) 而所有这一切都是在企业防火墙的后面。
Tuan补充说 :
也许我公司的代理不允许https。 这是我的解决方法:
boot2docker ssh
, export http_proxy=http://proxy.com
,然后 docker -d --insercure-registry docker.io
启动docker -d --insercure-registry docker.io