use*_*785 21 windows git proxy docker
我正在尝试按照本教程安装一个有效的docker-installation:http: //docs.docker.io/en/latest/installation/windows/
到目前为止,我使用手动下载的存储库运行VM(遵循github-link并下载为zip,因为"git clone"在我的公司代理后面没有工作,即使在使用"git conf --global http"设置代理之后也是如此.proxy ..." - 它一直要求我进行身份验证407,尽管我输入了我的用户和PW).现在我处于我应该使用"docker run busybox echo hello world"的状态("运行Docker"部分).当我这样做时,我首先得知没有安装docker(如教程底部所示),然后,在我用apt-get install docker获取它后,我得到"Segmentation Fault或遇到的严重错误.核心和流产."
现在做什么?这是因为我没有使用git clone或者docker安装有问题吗?我在某处读到,apt-get install docker没有安装我想要的docker,但是有些GNOME-Tool,我可以指定我的apt-request来获得正确的工具吗?
Von*_*onC 33
(背景:2015年3月,Windows 7,企业代理背后)
VonC/b2d:克隆它并:
..\env.bat后env.bat.template,profile'文件中添加您想要的别名,senv.bat然后执行b2d.bat.然后,您将处于适当的自定义boot2docker环境中:
docker search/pull.apt-get update/install并输入docker build.如果您是工作站的管理员,则可以在Windows上运行boot2docker install.
它目前附带:
然后,一旦安装:
c:\path\to\Boot2Docker For Windows\你的%PATH%boot2docker initboot2docker startboot2docker sshexit以退出ssh会话,然后boot2docker ssh返回:保留您刚输入的命令的历史记录.boot2docker stop如果打开Virtual Box GUI,您实际上可以看到 VM启动或停止,并键入DOS cmd会话boot2docker start或stop.
要理解的要点是你需要管理2个HOSTS:
%HOME%\.boot2docker\boot2docker.iso%USERPROFILE%\VirtualBox VMs\boot2docker-vm\boot2docker-vm.vmdk在代理方面,这意味着:
HTTP_PROXY,HTTPS_PROXY和NO_PROXY环境变量(你可能有过,但他们可以通过虚拟盒可用于例如检测虚框的新版本)http_proxy,https_proxy并且no_proxy(请注意Linux环境中的小写字母):
docker search nginx.docker pull会给你一个dial tcp: lookup index.docker.io: no such host./var/lib/boot2docker/profile:它profile不是.profile. /home/docker/.ashrc),如果你需要执行任何其他需要访问Internet的命令(除了docker)RUN apt-get update例如,下一个将为您提供Could not resolve 'http.debian.net').ENV http_proxy http://...在任何RUN需要访问Internet的命令之前,必须首先添加行.一个好的no_proxy设置是:
.company,.sock,localhost,127.0.0.1,::1,192.168.59.103
Run Code Online (Sandbox Code Playgroud)
(带有' .company'贵公司的域名,内部网站)
另一点要理解的是boot2docker使用的是Tiny Core,一个微小的Linux发行版(.iso文件只有26 MB).
并且Tiny Core没有持久性(除了一些技术文件夹):如果您~/.ashrc使用所有首选设置和别名修改您的...下一步boot2docker stop / boot2docker start将恢复原始的 Linux环境,您的修改已经消失.
您需要确保VirtualBox已下载并添加到VirtualBox /文件/设置/扩展/添加文件中的Oracle_VM_VirtualBox_Extension_PackOracle_VM_VirtualBox_Extension_Pack-4.x.yy-zzzzz.vbox-extpack.
如boot2docker中所述,您将可以访问(从您的Tiny Core ssh会话)到/c/Users/<yourLogin>(即%USERPROFILE%由Virtual Box共享)
最后要理解的是默认情况下没有导出端口:
-p 80:80例如,您必须使用容器的80端口暴露给Linux会话的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 Box' boot2docker-vm'尚未启动,则使用vbm modifyvm
- 如果Virtual Box' boot2docker-vm' 已经启动,则使用vbm controlvm
通常,如果我在boot2docker会话期间意识到无法从Windows访问端口80:
vbm controlvm "boot2docker-vm" natpf1 "tcp-port80,tcp,,80,,80";
vbm controlvm "boot2docker-vm" natpf1 "udp-port80,udp,,80,,80";
Run Code Online (Sandbox Code Playgroud)
然后,只有这样,我才能访问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
Run Code Online (Sandbox Code Playgroud)
(192.168.59.103通常是返回的ip boot2docker ip)
b2d.batb2d.bat脚本%PATH%:
boot2dockerdocker服务(重新启动)和/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
Run Code Online (Sandbox Code Playgroud)
为了进入一个新的boot2docker会议,与你的设置中定义完全相同,只要你想,只要键入:
b2d
Run Code Online (Sandbox Code Playgroud)
你很高兴去:
docker search xxx会工作(它将访问互联网)docker build将工作(如果有ENV http_proxy指令,它将访问互联网)%USERPROFILE%\prog\b2d都可以直接修改~/b2d.vi)从Windows会话中编写和修改这些相同的文件(如某些Dockerfile )而这一切都在企业防火墙背后.
也许我公司的代理不允许https.这是我的解决方法:
boot2docker ssh,export http_proxy=http://proxy.com然后设置代理docker -d --insercure-registry docker.io