プロが教える店舗&オフィスのセキュリティ対策術

Windows 10 homeにdocker toolboxをインストールしてDocker Quickstart Terminalを起動するとMINGWH64:/c/Program Files/docker Toolboxという画面が表示され、基本的にはここでdockerを動かすと思います。
virtualvoxマネジャー上でdefaultという仮想マシンが作成されますが、ここからdefaultを起動すれば同じくdockerを動かせると思います。
初歩的な質問ですが、両者で何が違うのか教えて頂けないでしょうか?
そもそも全体的な構造も分かっていないので、よろしくお願いします。

A 回答 (5件)

> RUN、ENV、FROMなど


この辺は、docker buildコマンドで使うDockerfileで記載するコマンドです。
ubuntuなど既存イメージから直接コンテナを起動して使う使い方はdockerではあまり一般的ではなく、使いたい状況に合わせて独自イメージを作っておいて、そのイメージからコンテナを起動するのが一般的なので、このような記載があります。

FROM ubuntu は新しく作るイメージがubuntuイメージを基にしていることを示します。
ENV user contuser1 は環境変数 user を contuser1 にします。あとの記載で${user}と出てくるところがcontuser1の意味になります。
RUN useradd …… はイメージ作成時に useradd …… コマンドを実行します。
USER ${user} はコンテナを起動したときにログインするユーザーを${user}にします。
CMD ["/bin/bash"] はコンテナ起動時に実行されるコマンドを/bin/bashにします。

> apt install
これもdockerコンテナ内で使えるように構成されていないのではないですかね。

使い方をみる限りdockerを使うのには向いてない感じがします。
単にインタラクティブに使えるLinux環境が欲しいなら、docker toolboxを使うより、直接VirtualBoxをインストールして、Ubuntu仮想マシンを構築して使う方がわかりやすいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。返信遅れてすみません。
あくまで練習で、dockerの理解のために、dockerの中でこれまでやってきた作業を再現するということをやっています。
windows homeの場合、docker tool boxを使うのが一般的かと思っていました。
virtualboxで作ったUbuntu仮想マシンからwindowsのフォルダにアクセスする方法も、添付頂いたリンクから出来るか、やってみます。

お礼日時:2020/01/14 13:59

> コンテナからwindows上のファイルにアクセスする


virtualvoxマネジャーで共有フォルダ設定するとdefault仮想マシンからWindows上のファルにアクセスできるようになると思いますが、dockerコンテナはdefault仮想マシンの中でさらに別の環境を作っています。
なのでさらにdockerコンテナからdefault仮想マシンのフォルダにアクセスできるような設定が必要です。
その設定はちょっと複雑なので例えば下記URLの説明を参考にしてください。
https://www.virment.com/docker-sharing-folder-se …
    • good
    • 0
この回答へのお礼

ありがとうございます。
細かくてすみませんが、UIDは確認できたのですが、docker run -it ubuntuで起動したdocker上で変更するためのコマンドのRUN、ENV、FROMなどを入力するとnot foundのエラーが出ます。
apt update後にapt install しようとするとunable to locate packageというエラーがでます。
何が問題か、見当つきますでしょうか。

お礼日時:2020/01/09 22:11

> MinGW64のbashでpysamというソフトをインストールする方法


pysamが何か知りませんが、Windows環境でインストールできないというのならMinGWでも無理でしょう。MinGWはbashなど幾つかのUnix系コマンドが移植されているだけで、Windows環境には違いありません。
一方で、DockerコンテナやVirtualBoxのLinux仮想マシン(default仮想マシンを含む)はLinux環境なので、この中ならpysamをインストールできるのは当然と言えます。
当然、このような仮想Linux環境にインストールしたソフトはその環境でしか使えません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
重ねてすみませんが、docker run -it ubuntuで立ち上げたコンテナからwindows上のファイルにアクセスするにはVirtualboxマネジャーで共有フォルダ設定から/c/Usersをマウントすれば良いのかと思っていたのですが、うまくアクセス出来ないようです。
調べたのですがよく分からず、何をすれば良いのでしょうか?

お礼日時:2020/01/09 18:51

> MinGWのbashから


> docker run -it ubuntu
> でubuntuを動かす
MinGWのbashでパスが通っているところに、docker.exeかdocker.batか何かWindows上で起動できるコマンドがあります。まずそれが起動し、そこでdefault仮想マシンを起動して(すでに起動している場合はdefault仮想マシンに接続して)、その中で上記と同じコマンドを実行します。
そこで既定のubuntuイメージから新しいdockerコンテナが作られ、コンテナ内のbashコマンドにコンソールの制御が渡されます。
なお、dockerコマンドでなくvirtualvoxマネジャー等から直接にdefault仮想マシンを動かしているとdockerコマンドの実行に不都合が出る可能性があるので注意してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
続けて、かつ質問が飛んでしまい恐縮ですが、MinGW64のbashでからpysamというソフトをインストールする方法をご存じないでしょうか?
pysamはWindows環境ではインストールできないようで、MinGW64のbashはwindows上で動いていますが、Linux仮想マシンを動かしているのでpysamもインストールできるのかなと思いましたが、同じエラーでインストールできません。上記の流れでMinGW64のbashから起動したubuntuだとpysamもインストールできました。
何が違うのか教えて頂けますでしょうか。

お礼日時:2020/01/09 17:04

docker Toolboxの画面はWindows上で動いていて、ここでdockerコンテナを起動するとバックグラウンドでdefault(Linux仮想マシン)を起動してdefault内でdockerコンテナを動かします。


virtualvoxマネジャーでdefaultを起動するとdocker環境を含むLinux仮想マシンを起動します。この中でdockerコンテナを起動すればdockerコンテナが起動します。
dockerコンテナ自体はどちらでも同じものになると思います。
ただdockerコンテナを起動するシェルは、前者の場合はMinGWのbashで、後者の場合はLinux仮想マシンのbashになるでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Docker Tool BoxではWindows上でLinux仮想マシンを起動し、Dockerコンテナを動かしているわけですよね。
また質問なのですが、MinGWのbashから
docker run -it ubuntu
でubuntuを動かすと何が起きているのでしょうか?
別のコンテナの中でubuntuが起動しているのでしょうか。

お礼日時:2020/01/08 23:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!