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

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

5
「ホスト名」を介してDockerコンテナー間で通信する方法
モノリシックサーバーを多数の小さなDockerコンテナーに分割する予定ですが、「コンテナー間通信」に適したソリューションはまだ見つかりません。これは私のターゲットシナリオです: コンテナーをリンクする方法とポートを公開する方法は知っていますが、これらのソリューションはどれも満足のいくものではありません。 従来のサーバーネットワークのように、コンテナー間でホスト名(コンテナー名)を介して通信するソリューションはありますか?

4
Mavenプロジェクトをドッキングする方法は?そしてそれを達成する方法はいくつありますか?
私はDockerを初めて使用します。多くのドキュメントを読み、多くの方法を試しましたが、Mavenを使用してJavaプロジェクトを実行する方法がわかりません。 を使用してイメージを構築する必要がありDockerfileますか? ホストでMavenプロジェクトを実行する場合のコマンドはどのようなものDockerfileですか?
90 java  maven  docker 

4
E:パッケージ 'mysql-client'には、dockercomposeを使用したphp-fpmイメージビルドにインストール候補がありません
Dockerはかなり新しいので、laravelプロジェクトを使用して詳細を学習しようとしています。このチュートリアルに従ってください。 https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose?comment=77842 Dockerfileをチュートリアルの内容から少し調整しましたが、チュートリアルファイルでも同じ結果になります。 FROM php:7.3-fpm # Copy composer.lock and composer.json COPY composer.lock composer.json /var/www/ # Install dependencies RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ apt-get update && apt-get install -y mysql-client \ RUN npm install -g npm # Clear cache RUN apt-get clean && rm -rf /var/lib/apt/lists/* # …


3
停止したDockerコンテナを再起動する方法
次のコマンドを使用して、イメージからDockerコンテナーを起動します。 $ docker run -d myimage /bin/bash -c "mycommand" ときに"mycommand"終了すると、コンテナは(私はそれが停止していると仮定)停止しているが、私は、このコマンドでそれを見ることができるので、それは、削除されません。 $ docker ps -a restart同じパラメータでこのコンテナにアクセスし、によって生成されたデータを保持する方法はありますmycommandか?
89 docker 

9
Dockerコンテナ内でプロセスが実行されているかどうかを確認する方法
[Updated1]一部の関数でTCPカーネルパラメーターを変更するシェルがありますが、このシェルをDockerコンテナーで実行する必要があります。つまり、シェルはコンテナー内で実行されていることを認識し、カーネルの構成を停止する必要があります。 これを実現する方法がわかりません。/proc/self/cgroupコンテナ内の内容は次のとおりです。 9:hugetlb:/ 8:perf_event:/ 7:blkio:/ 6:freezer:/ 5:devices:/ 4:memory:/ 3:cpuacct:/ 2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b 1:cpuset:/ 上記のフラグを使用して、このプロセスがコンテナー内で実行されているかどうかを確認できますか? [Updated2]:プロセスがlxc / Docker内で実行されているかどうかの判断にも気づきましたが、この場合は機能していないよう/proc/1/cgroupです。コンテナーのコンテンツは次のとおりです。 8:perf_event:/ 7:blkio:/ 6:freezer:/ 5:devices:/ 4:memory:/ 3:cpuacct:/ 2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b 1:cpuset:/ / lxc / containeridはありません

4
dockerexecで2つのコマンドを実行する方法
dockerexecで2つのコマンドを実行する必要があります。Dockerコンテナからファイルをコピーしていますが、sshなどを使用するために資格情報を処理する必要はありません。このコマンドはファイルをコピーします: sudo docker exec boring_hawking tar -cv /var/log/file.log | tar -x しかし、それはサブディレクトリvar / logを作成します、私はそれを避けたいので、dockerコンテナでこれらを行うことができれば私は良いはずです: cd /var/log ; tar -cv ./file.log docker execに2つのコマンドを実行させるにはどうすればよいですか?
89 docker 

10
docker-composeを取得してリポジトリから最新のイメージを使用する方法
何が間違っているのかわかりませんが、docker-compose up最初にシステムから古いコンテナを完全に削除しないと、レジストリから最新のイメージを使用できません。docker-compose pullが新しいイメージをフェッチしたにもかかわらず、composeは以前に開始されたイメージを使用しているようです。 私が見て、常に新鮮なイメージから容器を再作成するために、ドッキングウィンドウ-コンを取得する方法?これは私の問題に似ているように見えましたが、本番サーバーで使用できるソリューションを探していて、開始する前にすべてのコンテナーを削除したくないため、提供されているソリューションはどれも機能しません。再び(データ損失の可能性?)。変更されたイメージの新しいバージョンを検出し、それらをプルしてから、それらの新しいイメージでサービスを再起動するためだけに、composeを作成したいと思います。 このための簡単なテストプロジェクトを作成しました。このプロジェクトでは、新しいビルドごとにバージョンnrを増やすことが唯一の目標です。作成されたnginxサーバーを参照すると、バージョンnrが表示されます(これはローカルで期待どおりに機能します)。 dockerバージョン:1.11.2 docker-composeバージョン:1.7.1 OS:docker-toolboxを使用してCentOS7とOSX10.10の両方でテスト済み 私のdocker-compose.yml: version: '2' services: application: image: ourprivate.docker.reg:5000/ourcompany/buildchaintest:0.1.8-dev volumes: - /var/www/html tty: true nginx: build: nginx ports: - "80:80" volumes_from: - application volumes: - ./logs/nginx/:/var/log/nginx php: container_name: buildchaintest_php_1 build: php-fpm expose: - "9000" volumes_from: - application volumes: - ./logs/php-fpm/:/var/www/logs jenkinsサーバーで次のコマンドを実行してイメージをビルドしてタグ付けします cd $WORKSPACE && …

7
シェルスクリプトを使用してDockerコンテナ内でスクリプトを実行する
Dockerコンテナを設定するためのシェルスクリプトを作成しようとしています。私のスクリプトファイルは次のようになります。 #!bin/bash docker run -t -i -p 5902:5902 --name "mycontainer" --privileged myImage:new /bin/bash このスクリプトファイルを実行すると、新しく呼び出されたbashでコンテナーが実行されます。 次に、上記のシェルスクリプトからすでにコンテナ内にあるスクリプトファイル(test.sh)を実行する必要があります(例:cd /path/to/test.sh && ./test.sh)これを行うにはどうすればよいですか?
88 bash  shell  docker 

9
docker-compose with CIの使用-終了コードとデーモン化されたリンクされたコンテナーを処理する方法は?
現在、JenkinsエージェントはRailsプロジェクトごとにdocker-compose.ymlを生成してから、docker-composeupを実行します。docker-compose.ymlには、rbenvと他のすべてのRails依存関係を内部に持つメインの「web」コンテナーがあります。これは、テストPostgresDBを含むDBコンテナーにリンクされています。 問題は、実際にテストを実行して終了コードを生成する必要がある場合に発生します。CIサーバーは、テストスクリプトがexit 0を返した場合にのみデプロイされますが、docker-composeは、コンテナーコマンドの1つが失敗した場合でも、常に0を返します。 もう1つの問題は、Webコンテナーがテストの実行を完了した後でも、DBコンテナーが無期限に実行されるため、docker-compose up戻らないことです。 このプロセスにdocker-composeを使用する方法はありますか?コンテナを実行できる必要がありますが、Webコンテナが完了したら終了し、その終了コードを返します。現在、dockerを使用して手動でスタックし、DBコンテナーを起動し、-linkオプションを指定してWebコンテナーを実行しています。

6
ホストの外部(同じネットワーク)からDockerコンテナに接続する方法[Windows]
最初のDockerコンテナーを作成しました。これは、Goを使用してサーバーを実行していますが、ホストコンピューターの外部からアクセスできません。Dockerを使い始めたばかりなので、ここで少し迷っています。 したがって、サーバーを起動する非常に単純なGoコードがあり、GoをインストールしてLinuxベースイメージにコードをビルドするDockerイメージをビルドしました。サーバーをポート8080で実行しているので、次のようにコンテナーを実行しているホストにそのポートを公開します。 docker run -p 8080:8080 dockertest 働くことを私がドッキングウィンドウのマシンIPを介してサーバーにアクセスするために取得(に表示されていることを1ドッカークイックスタートターミナルが開始された)、問題は、私はある、私はホスト外からホスティングてるのウェブサイトにアクセスすることはできません、私がしようとした場合ので、電話で同じIPアドレスを開くと、エラーが発生します。このWebページは利用できません(ERR_CONNECTION_TIMED_OUT)。 また、次のようにIPを指定してみました。 docker run -p 192.168.0.157:8080:8080 dockertest しかし、そうすると、DockerマシンのIPも上記のコマンドラインで指定されたIPも経由せずにWebサイトにアクセスできます。また、コンピューターのIPを使用したコマンドでどのIPを書き込む必要があるのか​​わかりません。また、127.0.0.1(localhost)を試しましたが、同じ結果が得られました。どのIPからもWebサイトにアクセスできませんでした。 IPは何でも。 私はこの問題をグーグルで検索し、StackOverflowの質問をたくさん見つけましたが、どちらも私の問題を解決するのに役立ちませんでした。それらのほとんどはLinuxまたはMacを対象としていたため、解決策は私の状況には当てはまりませんでした。 また、コンピューターでGoコードを実行し、コンピューターのIPを介して同じネットワーク内の別のデバイスからWebサイトにアクセスできます。Dockerマシンで実行しているときにアクセスできない理由がわかりません。IP転送などに関係があるのではないかと思いましたが、私はネットワーキングの初心者です。私は主にWeb開発者であり、ネイティブの経験はほとんどありません。

12
data.sql MySQLDockerコンテナをインポートします
data.sqlがある場合、データベースをmysql dockerコンテナにインポートするにはどうすればよいですか?データベースデータをインポートする方法。ドッキングされた世界では、これにより複雑さが増します。いくつかの方法をお願いします。 ここに私のdocker-compose.yml: nginx: build: ./nginx/ container_name: nginx-container ports: - 80:80 links: - php volumes_from: - app-data php: build: ./php/ container_name: php-container expose: - 9000 links: - mysql volumes_from: - app-data app-data: image: php:7.0-fpm container_name: app-data-container volumes: - ./www/html/:/var/www/html/ command: "true" mysql: image: mysql:latest container_name: mysql-container ports: - 3306:3306 volumes_from: …
87 mysql  docker 

4
docker containerssl証明書
Dockerプルから取得したイメージにSSL証明書を追加するエレガントな方法はありますか? / etc / ssl / certsにファイルを追加し、update-ca-certificatesを実行する簡単で再現性のある方法を探しています。(これはubuntuとdebianの画像をカバーする必要があります)。 CoreOSでdockerを使用しており、coreosマシンは必要なssl証明書を信頼していますが、dockerコンテナーには明らかにデフォルトしかありません。 を使用docker run --entrypoint=/bin/bashして証明書を追加して実行しようとしましたupdate-ca-certificatesが、これはエントリポイントを永続的に上書きするようです。 私も今疑問に思っていますが/etc/ssl/certs、ホストマシンのコピーからコンテナにマウントする方がエレガントでしょうか?これを行うと、コンテナはホストと同じものを暗黙的に信頼できるようになります。 私はすべてを辞任する迷惑なプロキシを使用しています:(。これはSSLを壊し、コンテナを操作するのがちょっと奇妙になります。



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