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

5
Dockerコンテナ内でセキュリティ更新を処理する方法は?
サーバーにアプリケーションを展開する場合、通常、アプリケーションがそれ自体にバンドルするものと、提供するプラットフォーム(オペレーティングシステムおよびインストール済みパッケージ)に期待するものとが分離されます。これの1つのポイントは、プラットフォームをアプリケーションとは無関係に更新できることです。これは、たとえば、アプリケーション全体を再構築せずにプラットフォームが提供するパッケージにセキュリティ更新プログラムを緊急に適用する必要がある場合に役立ちます。 従来、セキュリティアップデートは、パッケージマネージャコマンドを実行して、オペレーティングシステムにパッケージの更新バージョンをインストールするだけで適用されてきました(たとえば、RHELの「yum update」)。しかし、コンテナイメージがアプリケーションとプラットフォームの両方を本質的にバンドルするDockerなどのコンテナテクノロジーの出現により、コンテナを備えたシステムを最新の状態に保つ標準的な方法は何ですか?ホストとコンテナの両方に独自の独立したパッケージのセットがあり、ホスト上で更新および更新が必要な場合、コンテナ内のパッケージは更新されません。Dockerコンテナが特に注目されているRHEL 7のリリースでは、コンテナのセキュリティ更新を処理するRedhatの推奨される方法を聞くのは興味深いでしょう。 いくつかのオプションについての考え: ホスト上のパッケージマネージャーにパッケージを更新させても、コンテナー内のパッケージは更新されません。 更新を適用するためにすべてのコンテナイメージを再生成する必要があると、アプリケーションとプラットフォームの分離が崩れるようです(プラットフォームを更新するには、Dockerイメージを生成するアプリケーションビルドプロセスにアクセスする必要があります)。 実行中の各コンテナ内で手動コマンドを実行するのは面倒で、アプリケーションリリースアーティファクトからコンテナが次に更新されるときに変更が上書きされる危険があります。 したがって、これらのアプローチはどれも満足のいくものではありません。

6
Amazon ECSのサービスのコンテナーを更新する
Amazon ECSで実行されているサービスのコンテナーを更新するには、どのようなアプローチが推奨されますか? AWSのドキュメントは言う:「あなたはあなたのアプリケーションのドッカーイメージを更新した場合、あなたはそのイメージに新しいタスクの定義を作成し、あなたのサービス、一度に一つのタスクにそれを展開することができます。」これは、現在ドキュメント(2015年4月13日)で現在利用可能なほとんどすべてです。 Amazon ECSでアプリケーションコンテナを更新する唯一の方法は、新しいタスクを作成してから、古いタスクを停止して新しいタスクを開始することだと正しく理解しましたか? Core OSおよびFleetctlで「latest」タグを使用しています。これには、サービスをリロードすると新しい変更が表示され、同じタグ「最新」を使用してコンテナが更新されるため、Dockerイメージのタグを新しい更新のために変更する必要がないという利点があります。 Amazon ECSの更新されたdockerイメージでサービスを更新するためにどのようなアプローチを使用しましたか?

2
docker-compose:docker-compose.ymlでの実行後にコンテナを自動的に削除するオプション
docker-compose run参照は、それが持っていると述べている--rmのオプションを 実行後にコンテナを削除します。 でrun指定する一部のサービスのデフォルトの動作にしたいdocker-compose.yml。 したがって、質問は次のとおりです。 なんとか指定できますdocker-compose.ymlか? できれば、どうすればいいですか? (INB4 "Use bash aliases、Luke!":もちろんdocker-compose.ymlbashエイリアスを次のように設定alias docker-compose-run='docker-compose run --rm'することでこれを強制することができますがdocker-compose.yml、何らかの外部的な方法ではなく、正確にそれを強制する方法に興味があります。)

2
ルート権限がないDockerコンテナにファイルを追加する方法は?
公式tomcatイメージから作成されたDockerイメージにファイルを追加しようとしています。tomcatbashを実行するとユーザーとしてログインしているため、そのイメージにはルート権限がないようです。 docker run -it tomcat /bin/bash tomcat@06359f7cc4db:/usr/local/tomcat$ Dockerfileファイルをそのコンテナにコピーするように指示した場合、ファイルには権限が644あり、所有者はrootです。私の知る限り、Dockerfile内のすべてのコマンドはrootとして実行されるため、これは妥当なようです。ただし、そのファイルの所有権をに変更しようとするとtomcat:tomcat、Operation not permittedエラーが発生します。 そのイメージにコピーされたファイルの権限を変更できないのはなぜですか? 再現方法: mkdir docker-addfilepermission cd docker-addfilepermission touch test.txt echo 'FROM tomcat COPY test.txt /usr/local/tomcat/webapps/ RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt' > Dockerfile docker build . の出力docker build .: Sending build context to Docker daemon 3.072 kB Sending build context to Docker daemon …

2
Linuxコンテナでデバイスをループしますか?
コンテナー内でループデバイスを使用して、イメージファイルをマウントしようとしています。 > sudo losetup /dev/loop0 test.img losetup: /dev/loop0: failed to set up loop device: No such file or directory /dev/loop0 確かに存在しません > sudo mknod /dev/loop0 b 7 0 mknod: ‘/dev/loop0’: Operation not permitted どうすればこれを機能させることができますか?コンテナには、持たないかもしれないcgroup権限が必要ですか?

3
結果が0で終了した場合にすべてのスーパーバイザプロセスを終了する方法
私はこのようなスーパーバイザーでドッカーコンテナーを実行します: Dockerfile CMD ["/run.sh"] run.sh #!/usr/bin/env bash exec supervisord -n supervisor-serf.conf [group:job] programs=serf,producer [program:serf] command=/start-serf-agent.sh numprocs=1 autostart=true autorestart=unexpected stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start-serf-agent.sh #!/bin/bash exec serf agent --join=serf:7946 -tag role=producer supervisor-servce.conf [program:producer] command=/start.sh numprocs=1 stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start.sh #!/bin/bash exec /producer --project=${NAME} プロデューサーが停止した後、私は持っています: producer_1 | …

3
Red Hat / CentOS EL6上のLinuxコンテナー(LXC)-lxc-create対libvirt?
Red Hatの優雅さを維持し、システムの寿命を延ばそうとするのは難しい... 私は1年以上、Linux Containers(LXC)の支持者です。私の最初のインストールは、のようなオンラインチュートリアルから収集された情報に基づいていた、この1と、この1。これはlxc-create、lxc-start|stopおよびlxc-destroyコマンドを中心に、既存のOpenVZテンプレートを変更します。 これはうまく機能し、本番環境で問題なく動作しています。しかし、私はいくつかの追加システムを立ち上げており、EL6のコンテナに関するRed Hatの現在のドキュメントを確認することにしました。これに対する彼らの公式の姿勢を見て驚いた。 ではないRHEL 6は、Linuxコンテナを使用するために必要なLXCツールを提供しますか?、Red HatはとしてLXCを説明し、技術プレビューとコンテナの作成と管理を管理するためのlibvirtを使用することを提案しています。 しかし、Oracle は Unbreakable Linuxでまったく異なるコンテナー化手法を提唱しています。 libvirtメソッドにはいくつかの機能が欠けているように見えますが、lxc- *コマンドを使用した最初のアプローチは少し手動のプロセスでした... 。 今日のLXCおよびRHELのようなシステムに関する従来の知恵は何ですか? どのようにしているあなたは、あなたの組織でそれらを実装しますか? あるアプローチと他のアプローチの利点はありますか? これらは共存できますか?

3
btrfsでLXCコンテナーを処理する適切な方法
lxcがインストールされた1つのサーバーと、ベースimgとして使用されるlxcコンテナーがあるとし/var/lib/lxc/ubuntu_baseます。簡単にするために、ベースimgをコピーした後の構成の変更を忘れましょう。 一部の人々は、新しいコンテナを作成するためにサブボリュームとスナップショットを使用することを提案しますが、cp --reflinkで簡単に結果を得ることができます。 それでは、複数のコンテナを管理するための適切な方法(またはより良い方法)は何ですか? スナップショット この方法が最善のようですが、ディレクトリを削除できないため、lxc-destroyなどのコマンドは機能しません。 btrfs subvolume snapshot /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1 reflinkを使用したcp このスナップショットとスナップショットの間にパフォーマンスの違いがあるかどうかわかりません cp --reflink=always /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1 または、私が知らない、これを行う他のより良い方法はありますか。 編集: 私はreflinkオプションで見てきたことの一つは、他の人が実行している場合ので、あなたは、ベースコンテナを削除できないこと、である/procとは、/dev参照が常に同じであるSE、マウントされており、変更されることはありません。しかし、すべてのコピーされたコンテナをシャットダウンすることは助けになるようです。

3
LXCとは何か、そしてLXCが何のために役立つのかをプレーンな英語で説明する[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? サーバー障害のトピックになるように質問を更新します。 6年前休業。 LXCとは何ですか? それは何のために便利ですか? LXCと一般的な仮想化の違いは何ですか?
9 linux  lxc  containers 

3
linux-vserverがあるのになぜLXCなのですか?
私はLXCのエキスパートではありませんが、私の知る限り、これはlinux-vserverに非常に似ています。 それが正しければ、すでに混雑している仮想化キャンプに別のプレーヤーがいるのはなぜでしょうか。LXCはlinux-vserverにないものを提供(または約束)しますか? 私は長い間linux-vserverのユーザーでしたが、この仮想化の宣伝が広まるのは何年も前のことです。開発は最近遅くなりましたが、完全に止まることはありませんでした-開発者がlinux / hppa(少なくともGentooで)の有用な状態に戻すのを助けたので私は知っています。彼らは定期的に、最新のカーネル(LXCで使用されているのと同じコンテナインフラストラクチャ)をすべて使用し、さらにGRsecurityと統合して、最新のカーネルに対してパッチを適用しています。 LXCの取り組みを始めた人々は、すでに確立されたlinux-vserverベースに参加する代わりに、おそらくそうする正当な理由があったのでしょうか?それから私は知りたいのですが。 それはすべてメインラインの統合に関するものですか?それなら、Xenの人々がXenLinuxでやっているように、統合のためにlinux-vserverを適合させてみませんか?

4
ネットワーク名前空間内のiptables LOGルール
Dockerコンテナーのiptablesルールをセットアップしようとしています。nsenterを使用して、コンテナーのネットワーク名前空間内でiptablesコマンドを実行しています。 # log access to port 8080 PID=$(docker inspect --format "{{.State.Pid}}" $ID) /home/ubuntu/nsenter -n -t $PID iptables -A OUTPUT -o eth0 -p tcp -m tcp --dport 8080 -j LOG このアプローチは、LOGルールを除いて完全に機能します。それらはどこにも記録しないようです。ホストシステムに適用される同じルールが機能し、にログを記録することに注意してください/var/log/kern.log。 これらのログルールの出力はどこにありますか?これはネットワーク名前空間の既知の問題/制限ですか?

1
Dockerコンテナー内のフォーク爆弾を防ぐ
私は現在、私が呼び出したユーザーのプロセス数を制限することに苦労していますsandbox。 私は/etc/security/limits.confこのように内部でプロセス制限を構成しました: sandbox hard nproc 100 しかし、sandboxユーザーとしてコンテナーに接続したい場合、sshは次を返します: shell request failed on channel 0 としてログインしてroot、sandboxユーザーごとに実行されているプロセスの数を確認しましたが、5未満です。 では、sshを介してログインできない理由は何ですか? 制限を設定しなくても、sandboxユーザーのsshログインは問題なく動作します。 またはフォーク爆弾攻撃を防ぐ他の方法はありますか?
8 ssh  pam  containers  docker 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.