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

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

5
Dockerコンテナの内部へのアクセスを禁止するにはどうすればよいですか?
Dockerイメージの形式で顧客にアプリを配信したい。ただし、エンドユーザーがコンテナ内の何かを変更しないようにすることが重要です。ユーザーは、コンテナを実行/停止し、ネットワーク経由でコンテナとやり取りすることのみが可能です。 コンテナの内部へのアクセスを禁止することは可能ですか?コンテナが作成したイメージの整合性を検証することは可能ですか?
14 docker  security 

2
chrootとDockerの違い
dockerとchrootの違いがわかりません。はい、レジストリのパッケージ化の点でいいです。しかし、どういうわけか私は余分なベルとホイッスルを備えたちょうどそのchrootの感じを得る。 何かが足りないのはわかっています。それらがどのように異なっているか、そしてchrootが同様のことをすることができるならdockerの必要性を知ることは素晴らしいことでしょう。 私はこのChroot対Dockerも十分に明確に見つけることができませんでした。

2
Dockerコンテナーをホストと内部の両方のブリッジネットワークに接続する
プライベート(--internal)Dockerネットワークと事前定義hostネットワークの間のルーターとしてDockerコンテナーを実行しようとしています。つまり、コンテナには2つのネットワークインターフェースが必要です。1つは「外部」インターフェースであり、すべてのホストIPアドレスにアクセスでき、もう1つは「内部」インターフェースであり、内部Dockerネットワーク内のコンテナーのゲートウェイとして機能します。 ルーターコンテナー自体は、コンテナーとの間でネットワークトラフィックのNATを実行します。 これら2つのインターフェースでコンテナーを実行するようにDockerを構成する方法は見つかりませんでした。私が得ることができる最も近いbridgeものは、割り当てられた2つのインターフェースを持っていることです。 手動で接続しようとすると、エラーが発生します。 # docker network connect host root_router_1 Error response from daemon: Container cannot be disconnected from host network or connected to host network 誰かがこれを達成する方法を、できればDocker Composeでさえ教えてもらえますか?

2
Dockerで実行されるJenkinsビルドスレーブでnpmキャッシュを有効にする方法は?
frontend.imageJenkinsビルドスレーブに使用するDockerイメージがあります。Jenkins Dockerプラグインは、このイメージからコンテナーをスピンアップし、コンテナー内にアーティファクトを構築します。これはすべてうまくいきます。この場合、frontend.imageAngularJsアプリの構築に使用されます。このAngularアプリの構築の一部は、アプリに必要なnpmパッケージをインストールすることです。 このプロセス、npm installには時間がかかり、3分かかるようです。npmは常にすべてのパッケージを毎回インストールします。 そこで、スレーブ用のボリュームを追加しました。これはホストマウントボリュームです。Dockerプラグインは、フロントエンドコンテナーを実行するたびにこのボリュームを使用します。 コマンドを実行するユーザーnpm installはjenkinsです。npmは、npm config get cache出力するコマンドで見つけることができるキャッシュを保持します/home/jenkins/.npm その/slaves/volumes/tsl.frontend:/home/jenkinsため、Webコンテナのスレーブにホストボリュームをマウントしています。 Jenkinsプロジェクトを使用してAngularアプリをビルドします。問題なくビルドされ、多くのnpmパッケージがインストールされています。Dockerホストにsshしてcmd ls /slaves/volumes/tsl.frontendを実行すると、多くのnpmパッケージが表示されます。これは、スレーブのホストボリュームマウントが機能したことを意味します。 ここで、ジェンキンスプロジェクトをもう一度ビルドします。npmは、Dockerスレーブビルドコンテナがボリュームホストマウントを使用している場合でも、すべてのパッケージを再度インストールします。キャッシュされた多くのnpmパッケージを一覧表示するcmd docker exec -it <some_clever_random_container_id> bash、cmd su jenkins、cmd npm cache lsでスレーブコンテナーにバッシングすることでも確認できます。 そのため、ホストマウントボリュームにアクセス許可chmod 777があり、アクセス許可の問題がないnpm install場合でも、キャッシュを使用できません。 Dockerスレーブコンテナーを起動するJenkinsビルドで、最初に実行するcmdがnpm cache lsあり、多くのパッケージがリストされていますが、これはホストボリュームが期待どおりに機能し、npmキャッシュインデックスの整合性が壊れていないことを意味しませんか? 通常のnpm installcmd を試しました。ローカルマシンで実行すると、最初にすべてのパッケージがインストールされ、次回はほとんどパッケージがインストールされません。また、このSOの回答とcmd npm --cache-min 9999999 installから取得したnpm cache "hack"npm --skip-installed --cache-min 9999999 install 関連する質問がStackOverflowに投稿されました。
13 docker  jenkins  npm 

4
古いDockerイメージを定期的にクリーニングするためのベストプラクティスやツールはありますか?
Dockerレジストリから古い画像を削除する場合、エレガントな方法やベストプラクティスはありますか? https://github.com/docker/docker-registry/labels/deleteに多くのリクエスト/問題がありますが、良い/人気のあるソリューションは見つかりませんでした。 だから、それをするのに役立つツールやテクニックはありますか? また、実行中に従うベストプラクティスはありますか?
13 docker  toolchain 

2
Dockerコンテナーで停止したメインプロセスを調査するにはどうすればよいですか?
停止しているコンテナや、起動後に非常に速く停止して停止するコンテナを調査する必要がある場合があります。 docker exec -ti <id> bash 実行中のコンテナでのみ機能し、終了すると、bashプロンプトも終了します。 ではdocker start、あなたは別のコマンドを供給することができない、とコンテナが突然再び死ぬ場合は、コンテナに入ると、あなたの調査を行うのに十分な時間がありません。 我々は行うことができdocker commit、その後、docker run別のコマンドを使用して新しいイメージではなく、他の選択肢がある場合、私は思ったんだけど。 注:docker logs印刷されたアプリをstdout / stderrに返すだけです。それは問題が何であったかを理解するのに十分ではないかもしれません。

2
Kubernetesで展開を自動化するにはどうすればよいですか?
Rancherを介してKubernetesをデプロイし、JenkinsがGitHubに新しいコードをチェックインするときに新しいイメージを構築してDockerHubにプッシュすると仮定すると、新しいイメージのデプロイを自動化するにはどうすればよいですか? 質問をするもう1つの方法は、「以前はOctopusを使用して展開を管理していました。KubernetesやRancherに似たようなものが組み込まれていますか?」最終的に、私が苦労しているのはこの最後のギャップです。

2
Dockerコンテナーの容量計画
8つの3.2 GHz仮想CPUと32 GBの4つの仮想マシンでアプリケーションを実行していますが、プロセスを個別のコンテナーに分割します。 ホストごとに実行するコンテナの数がわかりません。典型的な数字は何ですか?たとえば、VMとベアメタルサーバーの比率が一般的に1:10である場合、考慮すべき属性のリンク、考慮すべき決定フレームワークまたはエクスペリエンスが役立ちます。

2
Docker SwarmとKubernetesを組み合わせる
私の会社は、DevOpsスペースで少し遅れを取り戻そうとしています。私は、アプリケーションのコンテナ化とそれに伴うオーケストレーションシステムについて、多くの研究を行ってきました。より良い機能を得るためにSwarmとKubernetesを組み合わせることについて彼らが話していた記事(私が救いたいもの)に出会いました。この記事では、彼らがそれによって得たものを定義しませんでした。 私はこれがどんな利益をもたらすのだろうかと思いましたか?複雑さの層を追加することで、本当に多くの利益が得られるでしょうか? 編集:私は技術的な賛否両論を探しています。KISSは良いモットーですが、CEOや取締役会との議論に遅れを取ることはありません。 コンテナにはDockerを選択し、オーケストレーションにはSwarmを選択することをほぼ確信しています。しかし、私は私たちのスペースでKubernetesを見てみたいので、より堅牢なソリューションのためにテクノロジーを統合できるという提案が興味をそそります。

2
Azureで、短期間有効なDockerコンテナーをスケジュールに従って実行するにはどうすればよいですか?
AzureコンテナーレジストリでホストされているAlpine Linux Dockerコンテナーにパッケージ化されたかなり単純なUnixシェルスクリプトがあります。VMはこのスクリプトをcronで実行します。 docker login <snip> docker pull example.com/bar:latest docker run example.com/bar:latest VMなしで実行し、代わりにAzureサービスを使用できますか?おそらく、Azure Container Instanceでこれを実行するある種のスケジューラを使用できますか? 私の動機は、VMの維持と支払いを望んでいないことです。

2
CircleCIで実験的なDocker機能を実行する方法
CircleCIでビルドが開始されると、最初に行われることの1つは次のとおりです。 リモートDockerエンジンをセットアップする Specified reusable docker engine, but build has not been whitelisted. Contact CircleCI to be whitelisted Allocating a remote Docker Engine ... Remote Docker engine created. Using VM 'prealloc-wrjtu1qd-1491949826270' Created container accessible with: DOCKER_TLS_VERIFY=1 DOCKER_HOST=tcp://<IP>:2376 DOCKER_CERT_PATH=/tmp/docker-certs615987123 DOCKER_MACHINE_NAME=51123 その後docker build --squash -t imagename .CircleCIで実行すると、次の結果になります。 Error response from daemon: squash is …

3
Jenkins:ビルド環境としてDockerを使用する権限の問題
JenkinsをUbuntu 16.04マシンにインストールしました。Jenkins自体はコンテナーでは実行されません。yarn installノードイメージを使用して呼び出すだけです。これが私のJenkinsfileです: pipeline { agent any stages { stage('install node modules...') { agent { docker 'node' } steps { sh 'cd /path/to/package.json; yarn install' } } } } かなり簡単ですよね? jenkinsユーザー/グループは112:116であり、ノードコンテナーのuidは1000であるため、yarnプロセス(ノードユーザー1000として実行される)はのようなことはできませんmkdir /.config。 引数を渡してノードコンテナをスピンアップ-u 1000しようとしましたが、永続ディレクトリを作成しようとしたときに権限の問題にぶつかりました。 どちらかの問題のようですが、どうすれば回避できますか? ジェンキンスのログ: 以下は、ビルドが開始して失敗する場所です。 [Pipeline] sh [Pipeline_Test_Jenkins_test-4JTFYMX7KSJY6ZH44VINNGEB7WH2D2HWYZN5ABF6O32O2HBQJYXQ@2] Running shell script + docker inspect -f . node . …

4
コンテナ内からchocolatey.orgやその他のインターネットサイトに接続できない
https://forums.docker.com/t/cannot-connect-to-chocolatey-org/38745からのxpost 予想される行動 Windows Server 2016 Datacenter(MSDNダウンロード)64ビットを実行しています-バージョン1607-ビルド14393.1715 私はDocker For Windowsを使用しており、Windowsコンテナーを実行しています。 これが世界で最も簡単なことだと思います。 reboot my host machine docker run -it microsoft/windowsservercore powershell iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')); 期待はこれがチョコレートにチョコレートをインストールすることです。 私は実際にこれをdockerfileで行うつもりですが、今すぐヘルプを得るために最小限の作業例を探します。 これは失敗する実際のdockerファイルです(悲しいことにそれほど創造的ではありません)。 FROM microsoft/windowsservercore SHELL ["Powershell"] ENV ChocolateyUseWindowsCompression false; RUN iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')); 実際の行動 まず最初に、これをVirtualbox VMで実行しています。これに限定されないが、内部ネットワーク接続とテスト、SQLサーバーの実行、Docker構成環境に対して実行されるWCFサービス、データが正しく返されることなど、私が作業したいすべてのものが機能します。システムが実行することを期待していることはすべて機能しています。これが最後のステップです。指を交差させました:D。Hyper-Vが機能していて、すべてのマシンが期待どおりに機能しているので、これをVirtualBoxで実行しているという事実は問題になりません。言及する価値があると思います。 docker run -it microsoft/windowsservercore powershell PS C:\> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) Exception …
11 docker  windows 

7
開発者がDockerを気にする必要があるのはなぜですか?
一般に、開発者はビジネス要件を満たすことに関心があります。彼/彼女は特定のスタックまたはフレームワークの専門知識を持っているかもしれません。しかし、彼/彼女はdockerとそれがさまざまな配備方法(swarm、kube、mesosなど)を学ぶように努力すべきでしょうか? 簡単に言えば、開発者がdockerを気にする必要があるのはなぜですか? PS:この投稿の親の質問は、開発チームにdockerを導入することの影響です

2
Jenkins PipelineでDockerを実行するときの正しい権限設定は何ですか?
新しいjenkinsパイプラインをまとめて、コードへの新しいプルリクエストをテストしようとしています。ubuntu:14.04画像でdockerを使用して、本番環境をシミュレートしています。 以下は最小の動作例です: #jenkinsfile stage('Checkout and provision'){ docker.image('ubuntu:14.04').withRun('-u root'){ checkout scm sh 'chmod -R 770 ./' sh './init-script.sh' } } そして #init-script.sh sudo add-apt-repository ppa:ondrej/php sudo apt-get update -y sudo apt-get dist-upgrade -y sudo apt-get install \ apache2 \ php \ php-mysql \ php-xml \ libapache2-mod-auth-mysql \ libapache2-mod-php \ php5-curl \ …
11 jenkins  docker 

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