0

私はDockerとCoreOSが初めてです。コンテナの概念と、それらが互いにどのように関係しているかについて、私は少し不明確だと思います。

カスタム サーバー (myserver と呼びます) と memcached サーバー (myserver のみがアクセスします) の 2 つのサービスを実行する CoreOS ベースのサーバーをセットアップしようとしています。

したがって、CoreOSマシンにmyserver.serviceファイルをインストールするところまで到達したと思います。これにより、次のような行を使用してupi myserverを正常に起動できます。

ExecStart=/bin/bash -c '/usr/bin/docker start -a my_container || /usr/bin/docker run --name my_container my-image /usr/local/bin/myserver'

私の質問は、memcached サーバーを起動するために、CoreOS で新しい memcached.service ファイルを作成する必要があるかということです。その場合、カスタム サーバーと同じコンテナー "my_container" を使用する必要がありますか? 同じコンテナーを使用しない場合、myserver は memcached サーバーにアクセスできますか?

4

1 に答える 1

3

ブルックス、朗報です。CoreOS を使用して記述された例 ( https://github.com/brianredbeard/memcache-tools ) があります。

この場合、2 つの systemd ユニットを含む 2 つのコンテナーができます。

Memcache.service ユニット:

[Unit]
Description=My Memcached Server
Requires=docker.service
After=docker.service

[Service]
ExecStart=/usr/bin/docker run --rm --name %n -t -i memcache

Worker.service ユニット:

[Unit]
Description=My worker container
Requires=Memcache.service
After=Memcache.service

[Service]
ExecStart=/usr/bin/docker run --rm --name %n -t -i --link memcache:memcache my_container

これは、 memcacheという名前の最初のコンテナーを取得し、多くの変数を次の形式でmy_containerに提示します: MEMCAHCE_PORT_11211_TCP_??? 、たとえばMEMCAHCE_PORT_11211_TCP_HOSTMEMCAHCE_PORT_11211_TCP_PORTは、プログラム内で使用できます。

ダンプ、ロード、サンプル スクリプト、およびその例の Dockerfile と README.md を見てください。

于 2014-04-14T18:44:15.190 に答える