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

Dockerイメージ、コンテナー、ハブ、およびコンテナー化プラットフォームに関連するすべて

5
コンテナで1つのプロセスのみを実行することが推奨されるのはなぜですか?
多くのブログ投稿および一般的な意見では、「コンテナごとに1プロセス」ということわざがあります。 なぜこのルールが存在するのですか?すべてのプロセスが機能する必要がある単一のコンテナでntp、nginx、uwsgiなどのプロセスを実行してみませんか? このルールに関するブログ投稿: 「コンテナごとの単一プロセスは、Dockerアプリケーションの推奨設計パターンです。」 「Dockerは、単一プロセスまたは単一サービスのコンテナを作成するためだけのものです。」 「コンテナごとに1つのプロセスを使用する方が良い」 「単一のサービスをコンテナとして実行する」 「コンテナごとに1つのプロセス」 「コンテナごとに1つのプロセス」

6
本番環境でdockerを実行するときに考慮すべきベストで包括的なプラクティスは何ですか?
最後に、Dockerに非常に興味があるため、重要な顧客データを含むオンラインのビジネスクリティカルな実稼働システムをDocker Swarmに移動したいと考えています。すでにそうしている人もいるかもしれません。他の組織は、ルートモードで実行されているプロダクションプロセスを禁止するポリシーによってそれを買う余裕はありません。 Docker実稼働環境で考慮するビルディングブロックのチェックリストは何ですか?それらのすべてを必要とするわけではありませんが、それらすべてを評価することが重要です。 免責事項:「大きな無限リスト」を回避するためのSEポリシーがあることは知っていますが、このチェックリストは非常に大きくすることはできません...とにかく無限です。 だから-これらのビルディングブロックは何ですか? まだ展開されていない場合は、高度なセキュリティ設定(強化カーネル、SELinuxなど)でLinuxホストシステムを実行することを検討してください。 高山、busybox、またはスクラッチなどの小さなDockerベースイメージの使用を検討してください。たとえば、空のベースイメージから始めます。 ルート以外のユーザー設定を使用する コンテナに付与されている既に縮小されているカーネル機能のセットをさらに削減するために慎重に評価する プロセスを起動するコンテナごとに実行可能なバイナリを1つだけ持つことを検討します。理想的には静的にリンクします シェルアクセスを取得するためにシステムを破壊したい人は、コンテナがすべてのシェルを無効にしていることがわかったのではないかと思うかもしれません 可能な場合にのみ読み取り専用ボリュームをマウントする 質問:他に何ですか?

5
Dockerを使用せずにDocker HubからDockerイメージをダウンロードする
Docker HubからDocker Imageを手動でダウンロードしたい。より具体的には、Dockerクライアントソフトウェアがインストールされていない(およびインストールできない)制限された環境のマシンで、Docker HubからDockerイメージをダウンロードしたい。公式のAPIを使用してこれが可能になると考えていましたが、そうではないようです。次の説明を参照してください。 dockerコマンドなしでdockerイメージをフェッチします。例:wgetを使用 APIが画像のダウンロードをサポートしていないのは本当ですか?これを回避する方法はありますか? 更新1: 次のServerFaultの投稿に出会いました。 インターネットに接続されていないマシンに転送するためのdockerイメージのダウンロード 受け入れられた解決策は、使用していますdocker save私の状況では解決しないコマンドを、。しかし、そこに投稿された別のソリューションは、次のStackOverflowの投稿を引用しています。 Dockerイメージのプル そこでのソリューションの1つは、特にイメージをダウンロードするためのコマンドを生成できるdocker-registry-debugと呼ばれるコマンドラインツールを参照していますcurl。ここに私が得たものがあります: user@host:~$ docker-registry-debug curlme docker ubuntu # Reading user/passwd from env var "USER_CREDS" # No password provided, disabling auth # Getting token from https://index.docker.io # Got registry endpoint from the server: https://registry-1.docker.io # Got token: signature=1234567890abcde1234567890abcde1234567890,repository="library/docker",access=read curl -i …
32 docker  dockerhub 

3
Dockerレイヤーについて
に次のブロックがありますDockerfile: RUN yum -y update RUN yum -y install epel-release RUN yum -y groupinstall "Development Tools" RUN yum -y install python-pip git mysql-devel libxml2-devel libxslt-devel python-devel openldap-devel libffi-devel openssl-devel RUN作成されたドッカーレイヤーを削減するには、これらのコマンドを統合する必要があると言われました。 RUN yum -y update \ && yum -y install epel-release \ && yum -y groupinstall "Development Tools" \ && yum …

2
秘密をDockerコンテナーに渡す
画像解析ソフトウェアを実行するために使用されるベースDockerイメージがあります。イメージから作成された各コンテナには、処理されたイメージを分析および配布するためにソフトウェアによって使用される秘密(暗号化キー、顧客情報など)である構成設定のセットがあります。これらの秘密をコンテナに安全に渡すにはどうすればよいですか?

2
DockerfileでEXPOSEを使用する理由—とにかくすべてのポートにバインドできるため
そのポートをコンテナに入れdocker run -p 3000:3000 image ず にできEXPOSEます(以下を参照)。それが本当なら、なぜDockerfileにわざわざEXPOSEを入れるのですか?画像ユーザーとのコミュニケーションのためだけですか?ポートがすべてとにかくバインド可能であれば、ポートを公開する機能的な理由がわからないからです。 ここでは、公開されていないにもかかわらずコンテナ内のポートにバインドする手順を示します $ cat Dockerfile FROM alpine RUN apk add nodejs npm vim COPY webserver /webserver CMD [ "node", "/webserver/index.js" ] $ docker build . Sending build context to Docker daemon 1.931MB Step 1/4 : FROM alpine ---> 11cd0b38bc3c Step 2/4 : RUN apk …

1
Docker-in-Dockerが悪いと見なされるのはなぜですか?
2013年8月にはジェローム・Petazzoniがドッカーにドッカーを作成し、dind短いため、これはドッカーコンテナはドッカーコンテナの内部を作成することが許可され、この機能は、結果として非常に人気が証明したジェロームのGitHubのリポジトリ千の星と300本のフォークを超える受けます。 2年後の2015年8月にリリースされたDocker 1.8の時点では、DockerのDockerは、そのままDockerによって直接サポートされています。ただし、DockerでのDockerの使用には、Jérômeの投稿:CIまたはテスト環境でDocker-in-Dockerを使用していますか?考え直してください。これは、DockerのDockerが継続的インテグレーションに適した選択肢ではない理由に焦点を当てています。 DockerでDockerを使用するのはなぜ悪いと考えられるのですか?それは単にカメを完全に回避するためのケースですか?またはパフォーマンスの考慮事項?

2
Dockerで複数のログストリームを使用する方法
アクセスログ、汎用アプリケーションログ、システムログの3つのタイプのログを3つの個別のファイルに書き込むアプリケーションがあります。これらのログの形式(および目的)は大きく異なります。また、集中ログシステムに個別に送信する個別のログフォワーダーがあります。 ログをイベントストリームとして扱うという原則に基づいて、ファイルの使用から標準出力への移行を検討しています。このアプローチの利点の一部はわかっていますが、これはまた、異なる形式のログのマージされたストリームを取得することを意味し、中央システムに送信する前に再度分割する必要があります(Kibana / Splunk /など)、またはその中。 この状況にどのように取り組むべきかについてのツールや推奨事項があるかどうか疑問に思っています。
21 docker  logging 

7
最小の作業ドッカーイメージを毎回作成する方法は?
目的:常に最小の作業用ドッカー画像を作成する 現在 REPOSITORY TAG IMAGE ID CREATED SIZE a-docker-image latest x 42 minutes ago 1.92 GB 試行 Dockerfileの最後にクリーンアップステップを追加します。 #clean RUN apt-get purge -y wget RUN rm -r a-build-dir RUN apt-get purge -y a-package 画像サイズを少し縮小しました: REPOSITORY TAG IMAGE ID CREATED SIZE a-docker-image latest y 2 minutes ago 1.86 GB 討論 さまざまなdockerイメージを作成しました。作成する画像のサイズを小さくしようとするたびに、常に大きすぎると感じます。githubの誰かによって既に作成されているスクリプトを探しています。このスクリプトは、作成されたイメージのサイズが可能な限り小さくなるように、イメージからすべての余分なパッケージを削除します。 …
19 docker 

3
docker-compose無効な型、文字列でなければなりません
docker-compose.ymlファイルで次の環境変数を設定しています: version: '3' services: server: ports: - 13045:3000 environment: - NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}' 実行しようとするとdocker-compose up、このエラーが発生します: services.server.environment contains {"NODE_CONFIG": "{\"DATABASE_URL\":\"http://db:5984\"}"}, which is an invalid type, it should be a string 環境変数をJSON文字列に設定する必要があります(https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_configを参照) ここで何か間違ったことをしていますか?これを何らかの方法で動作させることはできますか?

4
異なるコンテナでnginxとphpをドッキングすることの利点は何ですか?
私はDockerとKubernetesで作業を始めたばかりで、多くのスタックを見てきました。一部の人々は単一のイメージでnginx + phpを構築し、一部はnginxで画像を構築し、別の画像はphpで構築します(同じパスをマウントしてKubernetesの同じ展開内の両方のコンテナ)。 両方のnginx + phpを同じものにインストールする代わりに、2つのdockerイメージを構築する利点は何でしょうか?

2
アプリケーション構成はどこに置くべきですか?
私は最近、「環境に依存するプロパティをどこに保存すべきか」という議論を読んでいます。 従来の方法は、環境ごとに複数のプロパティファイルを作成し、環境変数(DEV、PROD ...)に基づいて、アプリケーションの起動時にそれらを読み込む場所を選択することです(Springプロファイルなど)。 一方、コンテナを使用してアプリケーションを展開している場合、この種の構成は環境自体から(アプリケーションが読み取る環境変数を使用して)取得する必要があるため、イメージは環境間で変化しません。 各アプローチの長所と短所は何ですか?コンテナシナリオに「最適な」アプローチはありますか?

3
docker用のOracle JDKはありませんか?
REPOSITORY TAG IMAGE ID CREATED SIZE an-image 1 X 26 seconds ago 279 MB Dockerイメージが実行されると、次のメッセージが表示されます。 No java installations was detected. Please go to http://www.java.com/getjava/ and download Oracle JDKをデプロイすると、Dockerイメージのサイズが2倍以上になります! REPOSITORY TAG IMAGE ID CREATED SIZE an-image 2 X 26 seconds ago 666 MB 討論 「Docker用のOracle JDKはありません」がグーグル検索された場合、dockerを含むDockerイメージへのリンクのみが返されます。Oracle JDKをdockerイメージにデプロイすると、サイズは2倍以上になります。Dockerイメージを可能な限り小さくしたいのですが、Oracle JDKはイメージ自体よりも大きいようです! 質問 docker用のOracle JDKはありませんか?

4
debパッケージを、アプリケーションを展開するコンテナであるかのように使用することの欠点はありますか?
私のチームは現在、NodekerアプリをDockerなどのコンテナーで実行するのではなく、debパッケージとして展開するかどうかを決定しようとしています。 私はこのブログ読んでからこのアイデアを得た、ここで既存のPythonアプリケーション用のdebパッケージを使用するためのいくつかの良い引数になります。私たちにとって魅力的なこのブログの主なポイントは、Dockerエコシステムの維持の問題です(ポート共有、アクセス許可、Dockerイメージのホスティングなど)。 「元のコンテナとしてのdep-packages」は、ポートの競合の心配がなく、すべての依存関係が仮想環境内で維持される小規模なサービスにとって非常に理にかなっているようです。 しかし、私の腸は、debパッケージが適切であれば、より一般的であり、ドッカーはより言語固有のソリューションとして宣伝されるだろうと言っています。Dockerなどのフルシステムを使用する代わりに、debパッケージなどを使用してサービスを展開することの欠点はありますか?

6
Dockerは私のユースケースに適していますか?
私の会社には、基本的にUbuntu 12.04を実行しているミニコンピューター「Smartbox」で構成されるシステムがあります。このボックスは、Djangoアプリケーションとそれに関連するいくつかの異なる起動プロセスを実行します。他にあまりない。私たちはこれらの箱をフィールドに何千も持っています。パッケージの依存関係、プロセスの登録などを、debパッケージを介して管理しますが、成功の度合いはさまざまです。 現場でユーザーに更新を効率的かつ堅牢にプッシュする方法が必要です。また、OSをアップグレードするときに(おわかりのようにUbuntuのアップグレードが遅れているので)、パッケージが "正常に動作している"ことについて比較的安心できることも必要です。 私はDockerについてあまり知りませんが、私たちの問題について初めて聞いたとき(私は新入社員です)、Dockerが私の最初の考えでした。しかし、それについて考えれば考えるほど、そうではないのではないかと感じました。これらのボックスは、Dockerの価値提案の大きな部分であるOSを制御する私たちのものだからです。それで、ボックスが常にUbuntuであり、基本的にDjangoアプリと実行するいくつかのプロセスがあるだけだとしたら、Dockerはdebパッケージよりも優れているでしょうか? TL; DR:常にUbuntuを実行する分散アプライアンスのDocker vs debパッケージ。プラットフォームの独立性はそれほど重要ではありません。
14 docker 

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