次のチュートリアルに従って、動作する Docker インストールを取得しようとしています。http://docs.docker.io/en/latest/installation/windows/
これまでのところ、手動でダウンロードしたリポジトリを使用して VM を実行できました (「git conf --global http.proxy ...」でプロキシを設定した後でも、「git clone」が会社のプロキシの背後では機能しなかったため、GitHub リンクをたどって ZIP ファイルとしてダウンロードしました。ユーザー名とパスワードを入力したにもかかわらず、認証 407 を要求し続けました)。
docker run busybox echo hello world
現在は、「 」(セクション「Docker の実行」)を使用する状態です。
これを実行すると、最初にDockerがインストールされていないというメッセージが表示されます(チュートリアルの下部に表示)。その後、 でインストールした後apt-get install docker
、「セグメンテーション違反または重大なエラーが発生しました。コアをダンプして中止します。」
今、何ができるでしょうか? これは、Docker を使用していないためgit clone
か、Docker のインストールに問題があるためでしょうか? どこかで読んだのですが、apt-get install docker
必要な Docker ではなく、何らかの GNOME ツールがインストールされます。適切なツールを取得するために、apt-request を指定できるでしょうか?
ベストアンサー1
企業プロキシの背後にある Windows Boot2Docker
(コンテキスト: 2015 年 3 月、Windows 7、企業プロキシの背後)
TLDR; GitHubプロジェクトを参照VonC/b2d
:
クローンを作成して:
..\env.bat
に従って設定しますenv.bat.template
。- 必要なエイリアスを「
profile
」ファイルに追加します。 - 実行して
senv.bat
くださいb2d.bat
。
boot2docker
すると、次の内容を含む適切にカスタマイズされた環境になります。
- と入力すると、企業のプロキシの背後でインターネットにアクセスできる ssh セッションが開始されます
docker search/pull
。 apt-get update/install
Dockerfiles は、 を実行し、 を入力すると、企業プロキシの背後でインターネットにアクセスできるようになりますdocker build
。
インストールと最初の手順
ワークステーションの管理者であれば、以下を実行できます。Windowsにboot2dockerをインストールする
現在、以下のものが付属しています。
- Boot2Docker 1.5.0 (Docker v1.5.0、Linux v3.18.5)
- Boot2Docker 管理ツール v1.5.0
- バーチャルボックスv4.3.20-r96997
- msysGit v1.9.5-プレビュー20141217
インストールしたら、次の操作を行います。
c:\path\to\Boot2Docker For Windows\
あなたの%PATH%
- (一度):
boot2docker init
boot2docker start
boot2docker ssh
- と入力し
exit
て ssh セッションを終了し、boot2docker ssh
再度ログインします。入力したコマンドの履歴は保存されます。 - VMを閉じる場合は、
boot2docker stop
実際にできる見るboot2docker start
Virtual Box GUI を開いて、DOS cmd セッションに入力するか、または VM を起動または停止しますstop
。
ホストとプロキシ: Windows => Boot2Docker => Docker コンテナー
理解すべき主なポイントは2つのホストを管理する必要があります:
- あなたのWindowsワークステーションはホストにLinux タイニーコアコンテナを定義して実行するためにVirtualBoxによって実行されます
(%HOME%\.boot2docker\boot2docker.iso
=>
.%USERPROFILE%\VirtualBox VMs\boot2docker-vm\boot2docker-vm.vmdk
)、 - boot2docker Linux Tiny Coreはホストあなたのコンテナあなたが走るだろう。
の観点からプロキシつまり、
- Windows ホストでは
HTTP_PROXY
、、HTTPS_PROXY
およびNO_PROXY
環境変数が設定されている必要があります (おそらく既に設定されているでしょう。たとえば、Virtual Box では、これらを使用して Virtual Box の新しいバージョンを検出できます)。 - Tiny Core ホストでは
http_proxy
、次の項目に対して、https_proxy
およびno_proxy
(Linux 環境では大文字と小文字に注意) が設定されている必要があります。- Dockerサービスイメージを照会/ロードできるようにします (例:
docker search nginx
)。
設定されていない場合は、次のdocker pull
が取得されますdial tcp: lookup index.docker.io: no such host
。
これは新しいファイルで設定されます/var/lib/boot2docker/profile
。 でありprofile
、 ではありません.profile
。 - Dockerアカウント
/home/docker/.ashrc
(インターネットアクセスを必要とする他のコマンド(docker以外)を実行する必要がある場合は、で設定します) - 任意のDockerfile作成します (または、次の行は
RUN apt-get update
、たとえば を取得しますCould not resolve 'http.debian.net'
)。
つまり、インターネット アクセスを必要とするコマンドENV http_proxy http://...
の前に、まず行を追加する必要があります。RUN
- Dockerサービスイメージを照会/ロードできるようにします (例:
設定すると良いのは次no_proxy
の通りです。
.company,.sock,localhost,127.0.0.1,::1,192.168.59.103
(.company
内部サイトの場合は、' ' に会社のドメイン名を入れます)
データの永続性?フォルダ共有を使用する
もう一つ理解すべき点はboot2dockerはTiny Coreを使用します、小さなLinuxディストリビューション(.isoファイルはわずか26MBです)。
そしてTiny Coreは永続性を提供しない(いくつかの技術的なフォルダを除く):~/.ashrc
すべての好みの設定とエイリアスで変更した場合...次はboot2docker stop / boot2docker start
復元されます清らかなLinux環境、あなたの修正が消えて。
VirtualBoxにOracle_VM_VirtualBox_拡張パックダウンロードして、Virtual Box / ファイル / 設定 / 拡張機能 /Oracle_VM_VirtualBox_Extension_Pack-4.x.yy-zzzzz.vbox-extpack
ファイルの追加に追加します。
としてboot2dockerに文書化されている、Tiny Core sshセッションから/c/Users/<yourLogin>
(つまり%USERPROFILE%
Virtual Boxによって共有される)にアクセスできるようになります。
ポートリダイレクト? コンテナの場合そしてVirtualBox VM用
最後に理解すべき点はデフォルトではポートはエクスポートされません:
- コンテナのポートはTiny Coreホストからは見えません(
-p 80:80
コンテナの80ポートをLinuxセッションの80ポートに公開するには、たとえばを使用する必要があります) - あなたのTiny Cort ポートは、デフォルトでは Virtual Box VM からエクスポートされません。: コンテナーが Tiny Core 内から表示されていても、Windows ブラウザーでは表示されません。http://127.0.0.1「 」は動作しません
The connection was reset
。
最初のポイントについては、docker run -it --rm --name my-apache-app -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
が含まれていないと機能しません-p 80:80
。
2番目のポイントでは、エイリアスを定義しdoskey vbm="c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" $*
、次の操作を実行します。 - 仮想ボックス「boot2docker-vm
」がまだ起動していない場合は、 を使用しますvbm modifyvm
- 仮想ボックス「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
永続設定: docker サービスにコピーそしてDockerアカウント
簡単に使用するためにboot2docker
:
- Windowsでフォルダを作成する
%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 は通常、 によって返される IP ですboot2docker ip
)
すべてをまとめて boot2docker セッションを開始します。b2d.bat
b2d.bat
以下のスクリプトを作成して追加し%PATH%
ます。- 始める
boot2docker
docker
再起動されるサービスとユーザー アカウントの両方に対して適切なプロファイルをコピーします/home/docker
。- 対話型SSHセッションを開始する
- 始める
あれは:
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
これで準備完了です:
最終結果:
- a は
docker search xxx
動作します(インターネットにアクセスできます) - どれでも
docker build
動作します(指示があればインターネットにアクセスできますENV http_proxy
) - の任意の Windows ファイルは、
%USERPROFILE%\prog\b2d
から直接変更できます~/b2d
。
または、( の代わりにvi
)お気に入りのエディターを使用して、Windows セッションから直接同じファイル(一部の Dockerfile など)を書き込み、変更することもできます。
そして、これらすべては企業のファイアウォールの背後で行われます。
ボーナス: httpのみ
おそらく私の会社のプロキシは https を許可していません。回避策は次のとおりです:
boot2docker ssh
、
dockerプロセスを終了し、- プロキシを設定
export http_proxy=http://proxy.com
し、 - ドッカーを起動する
docker -d --insercure-registry docker.io