2016-09-09 4 views
1

を実行user guideは、次のようにイメージが実行されるべきであると述べています。しかし、/bin/bashの部分は不要です。 /bin/bashの有無にかかわらず、私は両方の時間から読み書きできる対話型のプロンプトが与えられます。はドッカーイメージ

[email protected]:/# 

なぜ/bin/bashが必要ですか?

パート2

私はMac用ドッカー上で実行していますよ。 hello-worldバイナリをダウンロードして実行すると、それは1kbに過ぎません。明らかに、Linuxイメージはそれと共にダウンロードされませんでした。 hello-worldのバイナリは私のMacカーネルで動作していますか、Docker for Macに付属している小さなLinuxカーネルではありませんか?

+0

パート2の詳細はこちらです。基本的に、hello-worldは「ゼロから」実行されます。 https://hub.docker.com/_helhel-world/ –

+0

@AlbertoRiveraありがとうございますが、それを実行するLinuxのVMですか、それを実行する私のMacですか? – qarthandso

答えて

2

なぜ/ bin/bashが必要なのですか?

ubuntu画像はデフォルトで/bin/bashを実行するように構成することができるが、それは、すべての画像の真であることを行っていないので。デフォルトでWebサーバーを起動するイメージがあり、bash ...を実行したい場合は、それを明示的にする必要があります。特にあなた自身を構築していなかったinmageを使用して、コンテナを起動するときに、明示的であることを

$ docker run -it alpine 
docker: Error response from daemon: No command specified. 

それが痛いことはありません:一部の画像がにつながる、任意のデフォルトのコマンドを指定しないでください。どのこんにちは世界のバイナリ

私はハロー世界のバイナリをダウンロードし、それを実行

...

実行中のLinuxのVMですか、それを実行しているのは私のMacですか?

ドッカーはLinuxでのみ動作します。OS XまたはWindowsでDockerを使用している場合は、コンテナ内に実行しています。この目的のためにLinux VMがdocker-machine(またはそれ以前はboot2docker)で生成されています。 WindowsではDockerはHyper Vを使い、OS XではこれまでVirtualBoxを使っていましたが、最近のバージョンでは別のものが使われているかもしれません(OS XでDockerを実行してからしばらく時間がかかりました)。

+0

ありがとうございます。そして、私は 'hello-world'に対して[article](https://docs.docker.com/engine/getstarted/step_one/)を指定しておくべきでした。だから間違いなく、小さな「hello-world」バイナリを実行しているLinux VMがありますか?誰かが、何とか[osxfs](https://docs.docker.com/docker-for-mac/osxfs/)を使用していることを指摘しました。 – qarthandso

+0

'osxfs'は、OS Xホストとドッカーが動作しているVM間でファイルを共有するためのメカニズムです。私はすでに「それはVMですか?」と答えていると思います。私はその話題について他に何ができるのか分かりません。 – larsks

2

パート1:あなたはdocker run -t -i ubuntu後に渡すものは何でも

あなたのコンテナが実行される最初のコマンドです。/bin/bash、/ bin/sh、さらにはecho helloを試してみてください。 Ubuntuはデフォルトでbashを使用しますが、他のコンテナはDockerfilesに基づいて他のコマンドを使用します。

パート2:あなたはハロー世界を実行すると

、ドッキングウィンドウコンテナは、ハロー画像から作成されます。アプリケーションとそのすべての依存関係が含まれますが、カーネルを他のコンテナと共有し、ホストオペレーティングシステムのユーザー空間で独立したプロセスとして実行します。 "

こんにちは、具体的にはゼロから作成されますhttps://hub.docker.com/_/scratch/

関連する問題