タグ付けされた質問 「docker」

Dockerは、ソフトウェアコンテナー内のアプリケーションの展開を自動化するオープンソースプロジェクトです。

6
チェックはdocker-composeで実行されているコンテナ/サービスです
を使用していdocker-composeます。 up -d service_nameまたはのようないくつかのコマンドstart service_nameはすぐに戻ります。これは、通常のようにコンテナの実行をシェルの状態に依存させたくない場合に非常に便利ですup service_name。1つのユースケースは、ある種の継続的な統合/配信サーバーから実行することです。 ただし、この方法でサービスを実行/開始しても、その後のサービスの実際の状態に関するフィードバックは提供されません。 コマンドのDocker Compose CLIリファレンスにupは関連オプションが記載されていますが、バージョン1.7.1については、相互に排他的-dです: --abort-on-container-exit Stops all containers if any container was stopped. *Incompatible with -d.* コンテナが実際に動作しており、何らかのエラーが原因で停止していないことを手動で確認できますか?

4
172.17.0.0の範囲を使用しないようにDockerを構成する
キャプティブポータルとデフォルトのDocker IP範囲に問題があるため、Dockerに172.17.0.0ではなく198.18.0.0の範囲を使用させようとしています。 docsに続いて、を作成し/etc/docker/daemon.json、その中に以下を入れました { "bip":"198.18.0.0/16" } これはdocker0で機能しましたが、他のネットワークには影響を与えていないようであり、最初に作成されたネットワークはdocker composeを使用して172.17.0.0になり、クラッシュが再作成されます。 すべての Dockerネットワークのデフォルトサブネットを変更するにはどうすればよいですか(できればすべての構成ファイルでカスタムIP範囲を指定する必要はありません)?

4
iptablesでdockerコンテナーへの外部接続を制限する手順は?
私の目標は、Dockerコンテナへのアクセスを少数のパブリックIPアドレスに制限することです。目標を達成するためのシンプルで繰り返し可能なプロセスはありますか?Dockerのデフォルトオプションを使用しながら、iptablesの基本のみを理解すると、非常に難しいことがわかります。 コンテナを実行し、パブリックインターネットから見えるようにしますが、選択したホストからの接続のみを許可します。REJECTのデフォルトのINPUTポリシーを設定し、ホストからの接続のみを許可する予定です。しかし、DockerのNATルールとチェーンは邪魔になり、私のINPUTルールは無視されます。 以下の仮定を前提として、誰かが私の目標を達成する方法の例を提供できますか? eth0でホストパブリックIP 80.80.80.80 eth1でホストプライベートIP 192.168.1.10 docker run -d -p 3306:3306 mysql ホスト4.4.4.4および8.8.8.8を除く、ホスト/コンテナ3306へのすべての接続をブロックする コンテナをローカルIPアドレスのみにバインドできてうれしいですが、ドッカープロセスとホストの再起動に耐えるiptables転送ルールを適切に設定する方法についての指示が必要です。 ありがとう!
20 iptables  docker 

2
Dockerコンテナで実行されているOSはどれですか?
ほとんどの場合、これら2つのいずれかを使用して、Dockerコンテナで実行されているOS(alpine、centOSなど)を確認できます。 しかし、今回はわかりません。 bash-4.2$ uname -a Linux 6fe5c6d1451c 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux bash-4.2$ more /etc/issue \S Kernel \r on an \m 実行中のOSのテキストバージョンを取得する方法はありますか?

2
DoctableコンテナーがホストIP上のサービスにアクセスできるようにするためのiptablesルールセット
Dockerコンテナからホストプライベートインターフェイス(ip)にアクセスするのに問題があります。Iptablesルール(またはルーティング)に関連していると確信しています。に--net=hostフラグを追加するとdocker run、すべてが期待どおりに機能します。同様に、INPUTポリシーがリベラル-P INPUT ACCEPTに従っていることを指定すると、物事は期待どおりに機能します。ただし、これらは望ましくない、安全でないオプションです。 私のサービス(DNS)に固有ではないため、ドッカーと組み合わせて検索すると別の(人気のある)問題領域が得られ、検索結果にノイズが追加されるため、問題から除外しました。 また、特定のコンテナを--net = hostオプションで実行する必要があるため、Dockerコンテナのリンクは実行可能なオプションではありません。リンクを防止し、可能な限り一貫した状況を作りたいと思います。 次のIptablesルールがあります。CoreOS、Digital Ocean、Dockerの組み合わせだと思います。 -P INPUT DROP -P FORWARD ACCEPT -P OUTPUT ACCEPT -N DOCKER -A INPUT -i lo -j ACCEPT -A INPUT -i eth1 -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j …
18 iptables  docker 

4
ホストのPostfixを使用してDockerコンテナーからメールを送信する
Ubuntu 14.04(Linux)サーバーを実行しています。サーバーにPostfixとOpenDKIMを非常にうまくインストールして設定しました。私は、次のようなコマンドを使って自分自身に電子メールを送信することができecho hi | sendmail root、および接尾/ opendkimは、次のようなヘッダを追加しますMessage-Id、DateとDKIM-Signature、私の個人的な電子メールアドレスに電子メールを転送し、すべてが素晴らしい作品。 次に、Dockerコンテナで実行され、同じように簡単にメールを送信できるアプリケーションを作成したいと思います。特に、のようなヘッダーを追加することを心配したくMessage-Idありません。また、コンテナー自体の内部で多くの構成やソフトウェアのインストールを行いたくありません。 これを行う最良の方法は何ですか? コンテナがsendmailホスト上で実行可能ファイルを実行できるようにする方法はありますか? ポート25でSMTPプロトコルを使用して、コンテナからPostfixに接続しようとしましたが、Postfixはその方法で受信したメッセージを異なる方法で処理しているようです。ヘッダーが追加されなかったため、Gmailによってメッセージがスパムとして完全に拒否されたと思います(スパムフォルダーに配置するのに十分ではありませんでした)。 ここにメールログの内容 Sep 28 23:35:52 dantooine postfix/smtpd[4306]: connect from unknown[172.17.0.95] Sep 28 23:35:52 dantooine postfix/smtpd[4306]: DD457889B: client=unknown[172.17.0.95] Sep 28 23:35:52 dantooine postfix/cleanup[4309]: DD457889B: message-id=<> Sep 28 23:35:52 dantooine spamd[3175]: spamd: connection from localhost [::1]:59471 to port 783, fd 6 Sep …

2
コンテンツを含む、Dockerコンテナと関連データコンテナをデプロイするにはどうすればよいですか?
Dockerを初めて使用することを認めることから始めます。間違った一連の仮定からこの問題に近づいているのかもしれません。その場合はお知らせください。Dockerが展開にどのように役立つかについて多くの議論を見てきましたが、実際にどのように行われるかについての例はありません。 これがうまくいくと思った方法は次のとおりです。 マシンAに永続データを保持するデータコンテナを作成します データコンテナのボリュームを使用するアプリケーションコンテナを作成します データコンテナ内のデータを変更する可能性のある作業を行います アプリケーションコンテナを停止します データコンテナのコミットとタグ付け データコンテナを(プライベート)リポジトリにプッシュします マシンBでステップ6のイメージをプルして実行します マシンBで中断したところから再開する ここで重要なステップはステップ5です。これは、現在の状態(ファイルシステムの内容を含む)を保存すると思ったものです。その後、その状態をリポジトリにプッシュし、他の場所からプルすることで、元のコンテナと基本的に同じ新しいコンテナを作成できます。 しかし、そのようには機能しないようです。私が見つけたのは、ステップ5が思ったとおりに動作しないか、ステップ7(イメージのプルと実行)がコンテナを初期状態に「リセット」することです。 これをテストするために、3つのDockerイメージとコンテナーのセットをまとめました。データコンテナー、30秒ごとにデータコンテナー内のファイルにランダムな文字列を書き込むライター、およびechoデータの値を単純に読み取るリーダーコンテナファイルと終了します。 データコンテナ で作成 docker run \ --name datatest_data \ -v /datafolder \ myrepository:5000/datatest-data:latest Dockerfile: FROM ubuntu:trusty # make the data folder # RUN mkdir /datafolder # write something to the data file # RUN echo "no data here!" …
18 docker 

3
Dockerボリュームを介してUNIXソケットを共有しています-許可が拒否されました
php5-fpmボリュームを介してソケットをnginxWebサーバーと共有しようとしています。Fpmとnginxは異なるコンテナで実行されており、fpmからソケットファイルを配置する共有ボリュームを介して動作させたいです。 2014/04/13 10:53:35 [crit] 33#0: *1 connect() to unix:/container/fpm/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.8.2, server: docker.dev, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/container/fpm/run/php5-fpm.sock:", host: "docker.dev" 許可を777に設定し、グループをphp5-fpm.socketに変更しようとしましたwww-data。 fpmコンテナのDockerfile FROM ubuntu:13.10 RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y php5-cli php5-common RUN apt-get install -y …
18 nginx  socket  docker 

3
Dockerコンテナで実行しているときにphp-fpmを取得してstdout / stderrに記録する方法
Dockerコンテナーにphp-fpmがあり、fpm構成Dockerfileファイル(/etc/php5/fpm/pool.d/www.conf)を編集して、アクセスログ/var/log/fpm-access.logとエラーログを設定します/var/log/fpm-php.www.log。 # Do some php-fpm config # Redirect worker stdout and stderr into main error log # Activate the fpm access log # Enable display errors # Enable the error log RUN sed -i '/^;catch_workers_output/ccatch_workers_output = yes' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;access.log/caccess.log = /var/log/fpm-access.log' /etc/php5/fpm/pool.d/www.conf && \ sed -i …

1
FreeBSD JailsまたはDockerインスタンス
FreeBSDのjailとLinuxのDockerの主な違いは何ですか?一方は他方よりもかなり安全ですか、それともパフォーマンスが高いですか?刑務所はDockerインスタンスよりもずっと古いため、コード自体はより安全であると考えることができます。しかし、Jailsは決して「追いつかない」ので、おそらくDockerインスタンスほど良くありませんか?それとも、LinuxがFreeBSDよりもずっと人気があるというだけの理由ですか?
18 docker  freebsd  jail 

3
「入力デバイスはTTYではありません」とは、「ドッカー実行」の出力ではどういう意味ですか?
これは機能するコマンドです: $ echo 'hi there' | docker run -i ubuntu cat hi there これは、エラーメッセージで応答するコマンドです。 $ echo 'hi there' | docker run -it ubuntu cat the input device is not a TTY ここで何が起こるかを正確に把握したいと思います。「-tを削除すると修正されます」だけではありません。 私docker runの-tオプションは「擬似TTYを割り当てる」の略であり、TTYの略の歴史的な概要を読んだことがありますが、ここではどのような契約に違反しているかを理解する助けにはなりませんでした。
18 linux  docker  tty 

5
Dockerでchmodが正しく機能しない
SymfonyアプリのDockerイメージを構築していて、Apacheサーバーにキャッシュおよびログフォルダーへの書き込み権限を与える必要があります #Dockerfile FROM php:7-apache RUN apt-get update \ && apt-get install -y libicu-dev freetds-common freetds-bin unixodbc \ && docker-php-ext-install intl mbstring \ && a2enmod rewrite COPY app/php.ini /usr/local/etc/php/ COPY app/apache2.conf /etc/apache2/apache2.conf COPY ./ /var/www/html RUN find /var/www/html/ -type d -exec chmod 755 {} \; RUN find /var/www/html/ -type f -exec …

6
DockerのApache:「access.log」を実行するにはどうすればよいですか?
私はDockerとrichtを使い始めたばかりで、最初のdockerized Apache 2 / PHP環境をセットアップする方法を見つけようとしています。これまで、完全なLinux VMを使用してきました。/var/log/apache2に書き込まれるログファイルを使用し、「logrotate」を使用して毎日新しいファイルにホップしました。 ログファイルは、主に即時エラー検出(つまり、サーバーにログオンし、lessを使用して現在のaccess.logおよびerror.logファイルを開く)およびfail2banに使用されました。 私が正しいなら、それはDocker環境では実用的ではありません-主にあなたは通常ログを見るためにコンテナにログインできないからです。コンテナが削除されると、ログも失われます。 だから:そのような状況でaccess.log / error.logを操作/エミュレート/置換する最も一般的な方法は何ですか?実稼働環境と開発環境の両方に共通するソリューションは何ですか? これまでの私のアイデアには、NFS共有(低速で注意しないとファイル名の衝突が発生する可能性があります)、およびlogstash(努力する価値があり、小規模なサイトや開発環境でも実用的かどうかわかりませんか?)より良い解決策を考え出しましたか? 違いがあるかどうかはわかりませんが、現在はDockerイメージをphp:5.6-apacheに基づいています。

4
準備済みのデータベーススキームを使用したdocker mysqlコンテナーの作成
私のアプリに必要なスキームがすでに含まれているmysqlの上にdockerイメージを作成したいと思います。 スキームをsqlファイルとしてインポートする行をDockerfileに追加しようとしました。私はそのようにしました(私のDockerfile): FROM mysql ENV MYSQL_ROOT_PASSWORD="bagabu" ENV MYSQL_DATABASE="imhere" ADD imhere.sql /tmp/imhere.sql RUN "mysql -u root --password="bagabu" imhere < /tmp/imhere.sql" 私の理解では、mysqlドッカーイメージにはmysqlクライアントが含まれていないため、これは機能しませんでした(ベストプラクティスでは、「持っていると便利だからといって追加しないでください」)(これは間違っていますか?) これを行うための良い方法は何でしょうか?私はいくつかのことを念頭に置いていましたが、それらはすべて厄介な回避策のように見えます。 mysqlクライアントをインストールし、私がしなければならないことをしてから、それを削除/パージします。 mysqlクライアントバイナリをイメージにコピーし、必要な処理を行ってから削除します。 別のSQLサーバーでスキーマを作成し、dbファイル自体を直接コピーします(これは非常に面倒で、汚染された問題のプールのように聞こえます) 助言がありますか?後ほど簡単に維持でき、おそらくベストプラクティスにも準拠する方法で願っています。
17 mysql  docker 

1
ダウンタイムなしでDockerコンテナーを更新する
Webサーバー(Apache 2など)を備えたDockerコンテナーがあるとします。次に、その下のOSを更新します。このSFの答えは、最良の方法はベースイメージと私のApacheイメージを再構築することだと言います。ただし、新しいコンテナを作成する前に古いコンテナを削除する必要があるため、イメージをデプロイするとダウンタイムが発生します。したがって、ポート80/443にバインドするコンテナは1つだけです。 しかし、ダウンタイムなしでこの更新プログラムを展開するにはどうすればよいですか?ロードバランサーを使用し、コンテナー間通信を使用する必要がありますか?また、ロードバランサーを更新するにはどうすればよいですか?
17 docker  uptime  coreos 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.