問題タブ [docker-volume]
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.
ubuntu - Docker コンテナー ボリュームがホストに書き込みません
こんにちは、docker コンテナー内でいくつかのアセットを生成してホストに配置しようとしています。virtualbox ドライバーで初期化された docker-machine 環境内で実行されているものすべて。
たとえば、私は実行します:
その後
その時点から、実際にdummy.txt
ホストの$PWD/testfolder
フォルダーを確認する必要がありますが、フォルダーtestfolderもdummy.txtも(論理的に) ありません。
奇妙なことに、同じセットアップがMacOSXで正しく機能し、ホスト側でファイルを作成しますが、試してみるとUbuntu:14.04が機能しなくなりました。ここに両方のコンテナinspect
があります
- MacOSX ホスト: https://gist.github.com/zavalit/65e8a260866f834223616c1b59e4ce7d
- Ubuntu: 14.04 ホスト: https://gist.github.com/zavalit/40bd3ce8629ad81fcd6793ca63f99491
私が見る限り、それらは両方ともまったく同じです。
docker-machine バージョン 0.7.0-rc2 と 0.6.0 の両方で試しました。docker バージョンは 1.10.3 です。
誰かがそのようなことを経験しましたか?可能なヒントをいただければ幸いです。どうも。
apache - 共有 Docker ボリュームの umask を変更するにはどうすればよいですか?
これは「https://stackoverflow.com/questions/36477636/how-do-i-implement-a-shared-hosting-like-service-with-docker」に関連しています。
docroot に接続できるはずの apache-php コンテナーの束と、同じディレクトリにrw
接続できる 1 つの sftp コンテナーをセットアップしようとしています。rw
したがって、共有ボリュームを作成し、両方のコンテナー内にマウントする計画です (sftp コンテナーに関しては、明らかに別の場所にあります)。公式の php:7-apache 起動スクリプトを次のように変更しました。
実際、2 つのumask
行は、サンドイッチumask 0002
が正しく実行されていることを確認します。ただし、bash
コンテナに入ってこれを自分でテストすると、umask
が返さ022
れ、ファイルを作成すると、実際には権限が付与され644
ます。その後、手動umask 0002
で新しいファイルが作成され、アクセス許可664
(および775
ディレクトリ) が作成されます。
この使用例では、両方のコンテナー (sftp と apache) が共有ボリュームで読み書きできることが重要です。それで、どうすればいいですか?
docker - Docker ボリューム マウントが存在しません
OS X で Docker 1.11 を実行しており、ローカル ボリュームがどこに書き込まれているのかを把握しようとしています。を実行して Docker ボリュームを作成しましたdocker volume create --name mysql
。次に実行docker volume inspect mysql
したところ、次のように出力されました。
問題は/mnt/sda1/var/lib/docker/volumes/mysql/_data
、実際には私のマシンには存在しません。コンテナで使用されるまで実際に作成されなかったことが問題なのかもしれないと思ったので、実行してコンテナを起動しdocker run --name mysql -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql -P -d mysql:5.7
、MySQLでデータベースを作成しましたが、マウントポイントはまだ存在しません。正しいボリュームを使用していることを確認するために実行docker inspect mysql
したところ、次の結果が得られました。
この時点で、データがどこに書き込まれているのか完全にわかりません。私は何が欠けていますか?
docker - ボリューム エンドポイントがドライブ C: にない場合、Docker コンテナーは Windows ボリューム上のファイルを認識しません。
作業プロセスで docker イメージを使用したい。たとえば、larryprice/sass を使用して SASS ファイルを CSS にコンパイルしたいとします。このイメージは非常に単純です。
Windows 10、Docker 1.11、および VirtualBox 5.0.16 を使用しています。
論理ドライブ D - D:\Projects\Foo\Bar\web\sass にマップされた作業用 SSD に配置されたプロジェクト ファイル
したがって、私の問題は次のとおりです。ドライブ D からコンテナーにボリュームをアタッチする場合: ($PWD または MINGW スタイルのフルパス /D/Projects/Foo/Bar/web/sass) 例
コンテナーは SASS ファイルを認識できません。
しかし、システム ディスク (C:) からボリュームをマウントすると、すべて正常に動作します。
Windows で必要な場所からボリュームをマウントするにはどうすればよいですか? または、私の場合、何が間違っていますか?
psパスに先頭のスラッシュを追加しても機能しません:
docker - 実行ごとに新しいデータ ボリュームを作成する docker run
コンテナからいくつかの構成データを保持したいと考えており、データ ボリュームに関するチュートリアルに従っています。
私は正常にアプリを実行しています:
-v /app/config
コンテナーの再起動後も存続する必要がある構成を含むコンテナー内のディレクトリはどこにありますか。
また、コンテナを実行した結果、 にボリュームが作成され/var/lib/docker/volumes
ます。
ただし、コンテナーを強制終了して再実行すると、データは保持されず、新しいボリュームが次の場所に作成され/var/lib/docker/volumes
ます。
これらが持続するためのステップになると思いますが、ここで何か不足していますか?
docker - -v で VOLUME をマウントしているときにファイルを使用できない
VOLUME ["/log"] を持つ Docker イメージがあります。
コンテナーの実行中に、ホストに存在するフォルダーをマウントしています。
Docker によって VOLUME ["/log"] に書き込まれたすべてのログをホストで利用できるようにしたい。
ログは hostlogfolder によって書き込まれません
ただし、ログは docker 内の場所 /log で利用できます
フォルダをマウントする正しい方法は何ですか?