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

Dockerは、コンテナーを構築して実行するためのツールです。Dockerfile、操作、アーキテクチャに関する質問を受け付けます。本番環境でのdockerの実行に関する質問は、ServerFault(https://serverfault.com/)でより適切な応答を見つける可能性があります。dockerタグが単独で使用されることはめったになく、多くの場合、docker-composeやkubernetesなどの他のタグとペアになります。

8
企業ネットワークでのイメージ構築中にネットワーク呼び出しが失敗する
企業ネットワークでDockerイメージを構築する際に問題が発生しました。Dockerを使い始めたばかりなので、hello-worldタイプのアプリ用に次のDockerfileがあります。 # DOCKER-VERSION 0.3.4 FROM centos:6.4 # Enable EPEL for Node.js RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # Install Node.js and npm RUN yum install -y npm # Bundle app source ADD . /src # Install app dependencies RUN cd /src; npm install EXPOSE 8080 CMD ["node", "/src/index.js"] これは、自宅のラップトップや自分のワイヤレスネットワークで構築すると問題なく機能します。必要な依存関係をプルダウンし、イメージを正しく構築します。 ただし、職場の企業ネットワークにいる場合、download.fedoraproject.orgからRPMをプルダウンしようとすると、この同じDockerビルドが失敗し、次のエラーメッセージが表示されます。 ステップ2:RUN rpm …
81 dns  docker 

2
DockerコンテナをスケーリングするためにAWSElasticBeanstalkまたはAmazonEC2 Container Service(ECS)を使用する必要がありますか?
複数のマイクロサービスで構成されるDockerベースのアプリケーションを開発しました。Amazon SQSメッセージを消費し、それらを処理する必要があります。最初はAWSElastic Beanstalkを使用したかったのですが、その後EC2 ContainerServiceに転倒しました。今、私はどちらを選ぶべきかわかりません。 現在のところ、ElasticBeanstalkはMulti-Container-Environmentsをサポートしています。すべてのマイクロサービスがDockerコンテナ内に独自のアプリケーションサーバーを持っているので、これは素晴らしいことです。次の問題はスケーリングです。 スケーリングメカニズムがどのように機能するのかわかりません。例:ElasticBeanstalk環境に5つのDockerコンテナーがあります。現在、処理するSQSメッセージが大量にあるため、5番目のDockerコンテナのみが高負荷になっています。他の4つは、CPUをあまり必要としないか、SQSメッセージが少ないため、ほとんどアイドル状態です。5番目のコンテナがJBossアプリケーションサーバーを実行するとします。私の知る限り、使用可能なCPU /メモリが十分にある場合でも、サーバーは限られた量の並列要求しか消費できません。 JBoss Dockerコンテナがリクエストの量を処理できないが、使用可能なCPU /メモリが十分にある場合は、もちろん、同じインスタンスで2番目のDocker / JBossコンテナを自動的に起動したいと思います。しかし、十分なCPU /メモリがない場合はどうなりますか?もちろん、EBの自動スケーリンググループを介して構成可能な2番目のインスタンスでスピンしたいと思います。これで2番目のインスタンスが起動しますが、5番目を除くすべてのコンテナはほぼアイドル状態です。もちろん、2番目のインスタンスでも不要な4を生成しないようにします。これは、リソースの浪費になります。5番目のみが生成され、他はCPU /メモリ/ SQSなどの構成可能なパラメーターに基づいて5番目のスケールのようにスケーリングする必要があります。 Amazon ECSがそれを行っているかどうか、またはそれが可能かどうかは正確にはわかりませんが、このトピックに関する情報源はインターネット上で実際には見つかりません。一般的に言われているように、インスタンス/コンテナーに基づいてスケーリングします。

11
再起動しても壊れないように、Dockerコンテナ間のリンクを設定するにはどうすればよいですか?
次のように実行されているDockerコンテナがいくつかあります。 Nginx Webアプリ1 Webアプリ2 PostgreSQL NginxはWebアプリ1および2内のWebアプリケーションサーバーに接続する必要があり、WebアプリはPostgreSQLと通信する必要があるため、次のようなリンクがあります。 Nginx ---リンク---> Webアプリ1 Nginx ---リンク---> Webアプリ2 Webアプリ1 ---リンク---> PostgreSQL Webアプリ2 ---リンク---> PostgreSQL これは最初はかなりうまく機能します。ただし、新しいバージョンのWebアプリ1とWebアプリ2を開発するときは、それらを置き換える必要があります。私がしていることは、Webアプリのコンテナーを削除し、新しいコンテナーをセットアップして開始することです。 Webアプリコンテナの場合、最初のIPアドレスは次のようになります。 172.17.0.2 172.17.0.3 そして、私がそれらを交換した後、それらは新しいIPアドレスを持ちます: 172.17.0.5 172.17.0.6 現在、Nginxコンテナー内の公開された環境変数は、引き続き古いIPアドレスを指しています。ここに問題があります。コンテナ間のリンクを壊さずにコンテナを交換するにはどうすればよいですか?同じ問題がPostgreSQLでも発生します。PostgreSQLイメージのバージョンをアップグレードしたい場合は、必ずそれを削除して新しいバージョンを実行する必要がありますが、コンテナグラフ全体を再構築する必要があるため、これは実際のサーバー操作には理想的ではありません。

3
containerd.ioにインストール候補がないため、Dockerをインストールできません
Kubuntu 19.10にDockerをインストールしてみました。 次の手順でインストールしました:https : //docs.docker.com/install/linux/docker-ce/ubuntu/ 手順2で、リポジトリとキーを追加した後、このメッセージが表示されました Package containerd.io is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'containerd.io' has no installation candidate
33 docker  ubuntu 

3
Docker for Macでの高いCPU使用率の診断
MacOSでDockerの原因を診断するには、具体的にcom.docker.hyperkitはCPUを100%使用しますか? Docker統計 Docker統計は、実行中のすべてのコンテナのCPU、メモリ、ネットIO、ブロックIOが低いことを示しています。 iosnoop iosnoopはcom.docker.hyperkit、ファイルに対して毎秒約50回、合計500KB /秒の書き込みを実行することを示していますDocker.qcow2。よるとDocker.qcow2は何ですか?、Docker.qcow2すべてのドッカーコンテナの永続ストレージだスパースファイルです。 私の場合、ファイルはそれほどスパースではありません。物理サイズは論理サイズと一致します。 dtrace(dtruss) dtruss sudo dtruss -p $DOCKER_PIDは多数のpsynch_cvsignaland psynch_cvwait呼び出しを示します。 psynch_cvsignal(0x7F9946002408, 0x4EA701004EA70200, 0x4EA70100) = 257 0 psynch_mutexdrop(0x7F9946002318, 0x5554700, 0x5554700) = 0 0 psynch_mutexwait(0x7F9946002318, 0x5554702, 0x5554600) = 89474819 0 psynch_cvsignal(0x10BF7B470, 0x4C8095004C809600, 0x4C809300) = 257 0 psynch_cvwait(0x10BF7B470, 0x4C8095014C809600, 0x4C809300) = 0 0 psynch_cvwait(0x10BF7B470, 0x4C8096014C809700, 0x4C809600) = -1 Err#316 …

3
PostgreSQLのCI / CDパイプラインが「データベースが初期化されておらず、スーパーユーザーのパスワードが指定されていない」エラーで失敗する
CI / CD用のPosgreSQLでBitbucketパイプラインを使用しています。このドキュメントによると、PostgreSQLサービスは次のように説明されbitbucket-pipelines.ymlています。 definitions: services: postgres: image: postgres:9.6-alpine 今までは問題なく動作しました。しかし、最新のパイプラインはすべて次のエラーで失敗しました: Error: Database is uninitialized and superuser password is not specified. You must specify POSTGRES_PASSWORD for the superuser. Use "-e POSTGRES_PASSWORD=password" to set it in "docker run". You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections without a password. This is *not* …

3
「docker build --pull」の目的は何ですか?
Dockerイメージを構築するときは、通常使用しますdocker build .。 しかし--pull、指定できることがわかったので、コマンド全体は次のようになりますdocker build --pull . の目的がわかりません--pull。Dockersの公式ドキュメントには、「常に新しいバージョンのイメージをプルしようとする」とあり、これがこのコンテキストで何を意味するのかわかりません。 を使用docker buildして新しいイメージを作成し、最終的にそれをコンテナーレジストリのどこかに公開します。なぜあなたはまだ存在しないものを引っ張りたいのですか? これはウェブ上で簡単に見つけられるような「シンプル」なものを期待しますが、これと同じような質問をする人は誰もいないようです。グーグルでの唯一の本当のヒットは、私が(上記のように)理解できないドッカーズの公式ドキュメントを参照しています。 ご協力いただきありがとうございます!
17 docker 

3
Docker:ドライブは共有されていません
ASP.NET Core 3.1 MVCアプリケーションを「ドッキング」すると、次の結果が得られました。 docker run -dt -v "C:\Users\admin\vsdbg\vs2017u5:/remote_debugger:rw" -v "D:\xxx\yyy\Spikes\DockerizedWebApp1\DockerizedWebApp1:/app" -v "D:\xxx\yyy\Spikes\DockerizedWebApp1:/src/" -v "C:\Users\admin\.nuget\packages\:/root/.nuget/fallbackpackages2" -v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages2" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2" -P --name DockerizedWebApp1 --entrypoint tail dockerizedwebapp1:dev -f /dev/null docker: Error response from daemon: status code not OK but 500: {"Message":"Unhandled exception: Drive …

4
Traefik 2.0およびDocker Composeラベルを使用してhttpをhttpsにリダイレクトする方法
これはTraefik V2の質問です。V1で解決策がありましたが、V2は完全な手直しです。 上記は、http ://whoami.mysite.com をhttp s://whoami.mysite.com にリダイレクトすることを想定しています。 HTTP sがうまく働いています。 httpはhttpsにリダイレクトせず、エラー404を発生させます。 他のファイルはありません。現時点では、このDocker-compose.ymlにすべてが含まれています。これは、さらにデプロイを準備するためのテストであるためです。 version: "3.3" services: traefik: image: "traefik:v2.0" container_name: "traefik" command: - "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.web-secure.address=:443" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge=true" - "--certificatesresolvers.myhttpchallenge.acme.httpchallenge.entrypoint=web-secure" #- "--certificatesresolvers.myhttpchallenge.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - "--certificatesresolvers.myhttpchallenge.acme.email=me@mail.com" - "--certificatesresolvers.myhttpchallenge.acme.storage=/letsencrypt/acme.json" labels: - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" ports: - "80:80" - "443:443" …

1
確定的ポートバインディングによるDockerスケール
wildfly複数のポートが公開されているコンテナを確定的な結果でスケーリングしたいと思います。 docker-compose.yml version: '3' services: wildfly-server: build: context: . dockerfile: Dockerfile args: admin_user: admin admin_password: admin deploy: resources: limits: memory: 1.5G cpus: "1.5" restart: always ports: - "8000-8099:8080" - "8100-8199:9990" - "8200-8299:8787" expose: - "8080" - "9990" - "8787" Dockerfile FROM jboss/wildfly:16.0.0.Final # DOCKER ENV VARIABLES ENV WILDFLY_HOME /opt/jboss/wildfly ENV …

1
エラー:インストールされている.NET Core SDKを見つけることができませんでした
コマンドを実行すると、docker run -i -t myProjectエラーが表示されます。 インストールされている.NET Core SDKを見つけることができませんでした。.NET Core SDKコマンドを実行するつもりでしたか?https://aka.ms/dotnet-downloadから.NET Core SDKをインストールします 。 しかし、私は.NET Core SDKをインストールしており、これPATHは正しいです(以下に続きます:https : //docs.microsoft.com/en-us/aspnet/core/test/troubleshoot?view=aspnetcore-3.1#no-net -core-sdks-were-detected)。 さらに、私のプロジェクトに必要なのはランタイム.NET Core SDKだけです。 誰が問題になるのか知っていますか? dotnet --infoを実行すると、次のようになります。 .NET Core SDK(global.jsonを反映):バージョン:3.1.101コミット:b377529961 ランタイム環境:OS名:Windows OSバージョン:10.0.18363 OSプラットフォーム:Windows RID:win10-x86ベースパス:C:\ Program Files(x86)\ dotnet \ sdk \ 3.1.101 \ ホスト(サポートに便利):バージョン:3.1.1コミット:a1388f194c インストールされている.NET Core SDK:3.1.101 [C:\ Program Files(x86)\ dotnet \ sdk] …
13 docker  .net-core 

1
TLS構成を有効にしてTraefik TCPサービスに接続する方法
ドメイン名を介してサービスにアクセスできるようにし、別のポートを設定する必要がないようにTraefikを構成しようとしています。たとえば、2つのMongoDBサービスが両方ともデフォルトポートにありますが、異なるドメインにexample.localhostありexample2.localhostます。この例だけが機能します。つまり、他のケースはおそらく機能しますが、それらに接続できず、問題が何であるか理解できません。これはおそらくTraefikの問題でもありません。 動作する例を含むリポジトリを用意しました。mkcertを使用して独自の証明書を生成するだけです。のページexample.localhostは403 Forbiddenエラーを返しますが、この構成の目的はSSLが機能していることを示すこと(南京錠、緑のステータス)であるため、心配する必要はありません。したがって、に集中しないでください403。 mongoサービスへのSSL接続のみが機能します。Robo 3Tプログラムでテストしました。SSL接続を選択した後、ホストを提供example.localhostし、自己署名(または独自の)接続用の証明書を選択すると機能します。そして、それがそのように機能する唯一のものです。接続redis(Redisのデスクトップマネージャ)とするpgsql(PhpStorm、DBeaver、DbVisualizerのは)にかかわらず、私は証明書を提供するかどうかの、仕事をしないでください。SSLをサービスに転送せず、Traefikにのみ接続します。私はそれに長い時間を費やしました。インターネットを検索しました。まだ答えが見つかりません。誰かがこれを解決しましたか? PS。私はLinux Mintで作業しているので、私の構成はこの環境で問題なく動作するはずです。Linuxの解決策を求めます。 リポジトリを参照したくない場合は、最も重要なファイルを添付します。 docker-compose.yml version: "3.7" services: traefik: image: traefik:v2.0 ports: - 80:80 - 443:443 - 8080:8080 - 6379:6379 - 5432:5432 - 27017:27017 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./config.toml:/etc/traefik/traefik.config.toml:ro - ./certs:/etc/certs:ro command: - --api.insecure - --accesslog - --log.level=INFO - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 - --entrypoints.traefik.address=:8080 - --entrypoints.mongo.address=:27017 …

2
リポジトリはdocker buildで署名されていません
dockerhubから取得した最新のUbuntuイメージを使用する次のDockerfileがあります。 FROM ubuntu:latest RUN apt-get update && apt-get install -y g++ llvm lcov docker buildコマンドを起動すると、次のエラーが発生します。 エラー:2 http://archive.ubuntu.com/ubuntu bionic InRelease少なくとも1つの無効な署名が見つかりました。 エラー:1 http://security.ubuntu.com/ubuntu bionic-security InRelease少なくとも1つの無効な署名が見つかりました。 エラー:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease少なくとも1つの無効な署名が見つかりました。 エラー:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease少なくとも1つの無効な署名が見つかりました。 パッケージリストを読み込んでいます... W:GPGエラー:http : //archive.ubuntu.com/ubuntu bionic InRelease:少なくとも1つの無効な署名が見つかりました。E:リポジトリ「http://archive.ubuntu.com/ubuntu bionic InRelease」は署名されていません。 W:GPGエラー:http : //security.ubuntu.com/ubuntu bionic-security InRelease:少なくとも1つの無効な署名が見つかりました。E:リポジトリ「http://security.ubuntu.com/ubuntu bionic-security InRelease」は署名されていません。 W:GPGエラー:http : //archive.ubuntu.com/ubuntu bionic-updates …
13 docker  ubuntu  apt 

5
Alpine Dockerコンテナー内のFlaskアプリのGunicorn execで発生した「OSError:libc not found」に対処する方法
私はMiguel Grinbergの巨大なチュートリアルのMicroblogアプリに基づいたFlaskアプリケーションに取り組んでいます。コードはここにあります: https //github.com/dnilasor/quickgig。リンクされたMySQL 5.7コンテナを使用して動作するDocker実装があります。今日、Flask-Adminモジュールを使用して管理ビュー機能を追加しました。「flask run」を介してFlaskサーバーのローカル(OSX)で美しく機能しますが、新しいDockerイメージ(python:3.8-alpineに基づく)をビルドして実行すると、ブート時にOSError: libc not foundエラーが発生してクラッシュします。不明なライブラリを示します 追加すると、Gunicornがアプリを提供できないようです。クラスメートと私は困惑しています! 私はもともとpython:3.6-alpineベースイメージを使用してエラーを取得したので、3.7と3.8で試してみたが役に立たなかった。私はまた、PyMySQLを冗長に追加していることに気付きました。そして再び明示的にdockerfileで仕様なしで。requirements.txtエントリを削除しました。また、Flask-Adminのバージョン番号を増やしてみました。上下。また、コンテナーの起動に失敗する原因となる複数の移行ファイルを見たので、データベースの移行をクリーンアップしてみました(確かに、これはSQLiteを使用している場合です)。これで、移行ファイルは1つだけになり、スタックトレースに基づいて、flask db upgrade問題なく動作するように見えます。 私がまだ試していないことの1つは、別のベースイメージ(最小限のものではないですか?)です。すぐに試して、これを更新できます。しかし、この問題は私にとって非常に神秘的であり、他の誰かがそれを見たことがあるかどうか尋ねる時がきたと思った:) 潜在的に関連があるように見えるこのソケットのバグを見つけましたが、Python 3.8で完全に修正されるはずでした。 また、私はここで循環インポートに関するいくつかのアドバイスに従い、内部に管理コントローラー機能をインポートしましたcreate_app。 Dockerfile: FROM python:3.8-alpine RUN adduser -D quickgig WORKDIR /home/quickgig COPY requirements.txt requirements.txt RUN python -m venv venv RUN venv/bin/pip install -r requirements.txt RUN venv/bin/pip install gunicorn pymysql COPY app app COPY migrations migrations …

2
Dockerコンテナーでコアファイルダンプを無効にする方法
私のPHPコンテナーはpuppeteerを実行してPDFを生成します。PDFドキュメントを生成することで、コンテナ内に2つのコアダンプファイルも作成されます。実際にどこから来たのかわかりません。 ホスト/サーバーはCentOS 7です。 私は以下をチェックしました: アプリケーションエラーログはありません。Browsershot/ puppeteerはエラーなしで実行されています。 エラーログ(segfaultなど)が見つかりません /var/log/messages コアダンプを無効にしようとしました https://linux-audit.com/understand-and-configure-core-dumps-work-on-linux/の Disable core dumpsセクションに従って、私は完了しました: 次のコンテンツをに追加しています /etc/security/limits.conf * soft core 0 * hard core 0 以下によってdisable-core-dumps.shを作成しました。 echo “ulimit -c 0 > /dev/null 2>&1” > /etc/profile.d/disable-coredumps.sh に次のコンテンツを追加しました /etc/systemd/coredump.conf [Coredump] Storage=none ProcessSizeMax=0 そして、サーバーとコンテナを再起動します。 ulimit -c 0コンテナ(アルパイン)の内側にもセットしてみました 上記のトリックはどれも私にはうまくいきません。人形遣いがPDFを生成するたびに、常に次のような2つのコアダンプファイルが作成されます。 core.131 core.52 コアファイルは次のようになります。 誰かがコアダンプを無効にするのを手伝ってくれる?どうもありがとう。

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