問題タブ [docker-for-mac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - LAN上の別のマシンからDockerコンテナにアクセスする方法
Docker Desktop for Macを使用し、ホスト マシンでコンテナーを実行しています。ホスト マシンの localhost 経由でコンテナーにアクセスできます。ただし、LAN 上の他のシステムからは利用できません。
コンテナーはnginx Web サーバーでありlocalhost:80
、同じ LAN ネットワーク上の他のシステムからはアクセスできますがアクセスできません。
他のシステムがホスト マシン上のコンテナーにアクセスできるようにしたい。
編集 1: docker-compose 構成と「docker info」コマンド出力の追加
ドッカー情報
コンテナの起動に使用するコマンド:
mongodb - Docker for Mac と --host オプション
Docker for Mac (バージョン 1.12.0-a (ビルド: 11213)) を使用しています。
画像を使用して分度器テストを実行しようとしています。このコマンドを使用してテストを実行しています:
docker run -it --privileged --rm --net=host -v /dev/shm:/dev/shm -v $(pwd):/protractor webnicer/protractor-headless src/test/e2e/config/docker-config.js
これは私の設定ファイルです:
Mongo はコンテナー内で実行されており、webnicer/protractor-headless
コンテナーは Mongo を認識でき、すべてのデータを挿入できます (Mongo を確認し、経由で確認しdocker logs
ました)。
しかし、アプリが展開されwebnicer/protractor-headless
ている場所が見えないようです。localhost:8080
これはオプションに関連しているように見え--net=host
ますが、よくわかりません。誰にもアイデアや提案がありますか?
docker - Docker - コンテナを実行していますが、ブラウザでアプリを表示できません
ここで概説されている入門ドキュメントに従って、同じ環境を実行することにしましたが、新しい Docker for Mac アプリを使用します。ドキュメントによると、コマンドを実行した後、192.168.99.100/admin にアクセスしてログインできるはずですが、何も取得できません。これは、アプリが上記の VM ip を使用する docker ツール ボックスで構成されたためだと思います。localhost:80 を実行すると、アプリのエラーとファビコンが表示されます。何が間違っているのか教えてください。Docker を初めて使用し、これらの新しいツールを使用して開発しています。
linux - Docker イメージの実行
ユーザー ガイドには、イメージを次のように実行する必要があると記載されています。
これ-t
で疑似端末が作成-i
され、インタラクティブになります。でもその/bin/bash
部分は不要のようです。を使用しても使用しなくても/bin/bash
、どちらからでも読み書きできるインタラクティブなプロンプトが表示されます。
なぜ必要なの/bin/bash
ですか?
パート2
Docker for Mac で実行しています。hello-world
バイナリをダウンロードして実行すると、 1kb
. 明らかに、Linux イメージは一緒にダウンロードされませんでした。小さなhello-world
バイナリは私の Mac カーネルから実行されていますか、それとも Docker for Mac に付属する小さな Linux カーネルから実行されていますか?
macos - Docker for Mac で Docker.qcow2 のサイズ制限を回避するにはどうすればよいですか?
公式の postgres imageで実行しようとしている大規模な (100 GB 以上) データベースがあります。
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Docker for Macのファイルには約 60 GB のサイズ制限があるため、docker ボリュームにデータを保存できません。
マウントされたホスト ディレクトリ ボリュームでのファイル アクセスは、通常のボリュームよりもはるかに遅いため、ホスト ディレクトリをボリュームとしてマウントすることをためらっています。
これらの問題について詳しく説明している便利なリンクを次に示します。
- これは、Docker.qcow2 ファイルのサイズ制限について説明しています
- これは、Docker.qcow2 ファイルのサイズ制限についても説明しています
- これは、マウントされたホスト ディレクトリ ボリュームの速度の問題について説明します
- これは、Docker.qcow2 ファイルを、より大きくなる可能性のあるファイルに置き換える方法の適切な説明を提供します。
- これは、コンテンツが削除されても Docker.qcow2 ファイルが縮小しない方法について説明しています (これは直接関係はありませんが、問題をさらに複雑にする可能性があります)。
速度の低下を食い物にして、ホストディレクトリをマウントしますか? qemu で大きくなる可能性のある qcow2 ファイルを手動で作成しますか (これを行う場合、アップグレード間でこのファイルを維持する必要がありますか) この問題を処理するために何か他のことをしていますか?
python - ベスト プラクティス: docker for mac を使用した Python 開発環境
私は自分の Mac で作業しており、コンテナー内で python-flask アプリケーションを実行しています。Docker for Mac を使用しています。
目的:コードを変更するたびに、アプリを自動的にリロードする必要があります。Mac の IDE (atom) からコードにアクセスして変更を加えたいと考えています。
イメージをビルドすると、私の Dockerfile は virtualenv(/app/venv) を作成します。
コンテナーを実行するときは、コード ボリュームをマウントして、ローカル IDE からコードにアクセスして変更できるようにします。
問題: このアプローチの問題は、作成したボリューム マウントが原因で、イメージ ビルドで作成された venv フォルダーが消えることです。
その周りのベストプラクティスは何ですか?