yan's Handicraft

作成したフリーソフトを公開
Home » PC/システム開発 » Docker » Docker ComposeのYAMLサンプル(Windowsで使う例)

Docker ComposeのYAMLサンプル(Windowsで使う例)


昨年(2016年)ぐらいから、windows 環境で docdker-compose が使いやすくなっていて、 ローカルPC用のテスト環境用のサーバを準備するのに使い始めています。

とはいっても、設定ファイルを整合性を維持して書くのは気を使うし、間違うことも多々あります。

今後も、自分メモとして、ひな形として使えるようにgithubにサンプルを作ってみました。 基本方針としては、docker hub に登録されている、Docker公式イメージを中心に使い、 設定情報も最小限にしています。(一部、公式でないものも使っています。)

色々なファイルをコミットしていますが、一番大事なのは、 “docker-compose.yml” 、 “compose_up.sh” です。(この記事を作成した時点では、redis 、tomcat 、 sftpサーバ 、mysql 、openjdk 用バッチサーバ 、を含んでいます。)


事前条件

  • Docker Toolbox for Windows がインストール済であること
    • 同時に、”VirtualBox” と “Git for Windows” をインストールできるようになっています。必ず両方インストールしておいてください。

yangiYA/docker_compose_sample4win 使用例

  • Windowsの %USERPROFILE% ディレクトリ以下に、yangiYA/docker_compose_sample4win を配置してください。 (Github のシェルや、Dokerのターミナルなら “$HOME” 以下のディレクトリに配置してください。)
  • “Docker Quickstart Terminal”を起動します。
    (“Docker Quickstart Terminal”は[Docker Toolbox for Windows]をインストールすると、スタートメニューや、ショートカットとして登録されています。)
    起動すると、”Git for Windows”ベースのターミナルが起動して、また、VirtualBox上にVMが起動します。

    • 参考: “Docker Quickstart Terminal”を初めて起動する際に、自動的に”default”という名前のVMが作成されます
  • yangiYA/docker_compose_sample4win を配置したディレクトリに移動ます。
  • compose_up.sh” を起動して、docker container を実行します。
$ ./compose_up.sh
 
... (中略) ...
 
Creating java_01
Creating mysql_01
Creating mysftp_01
Creating tomcat_01
Creating myredis_01
 
****************************************************
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                  PORTS                     NAMES
f6464333f619        redis:3-alpine         "docker-entrypoint.sh"   2 seconds ago       Up Less than a second   0.0.0.0:16379->6379/tcp   myredis_01
63f4236086b9        tomcat:8.5-alpine      "catalina.sh run"        2 seconds ago       Up Less than a second   0.0.0.0:18080->8080/tcp   tomcat_01
eb5b35bb9661        atmoz/sftp:alpine      "/entrypoint sftpuser"   2 seconds ago       Up Less than a second   0.0.0.0:10022->22/tcp     mysftp_01
e1132ad801b4        mysql:5.6              "docker-entrypoint.sh"   2 seconds ago       Up Less than a second   0.0.0.0:13306->3306/tcp   mysql_01
59996af37e4d        openjdk:8-jdk-alpine   "tail -f /dev/null"      2 seconds ago       Up Less than a second                             java_01
 
 
 
****************************************************
* IP of Linux VM(for docker containers)
192.168.99.100
****************************************************
 
 
$

Dockerコンテはへのアクセス方法

上のログの場合 “192.168.99.100” がVMのIPです。 Dockerコンテナへの接続には、「ローカルPC」=>「VM」=>「各Dockerコンテナ」と経由してアクセスします。

上のログのうち、一番上を例とすると

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                  PORTS                     NAMES
f6464333f619        redis:3-alpine         "docker-entrypoint.sh"   2 seconds ago       Up Less than a second   0.0.0.0:16379->6379/tcp   myredis_01
  • ローカルPCからは “192.168.99.100:16379” に接続すると、Dockerコンテナのredisサービスに接続できます。
  • 他のDockerコンテナから、アクセスする場合は、ネットワーク名”myredis_01″、ポート”6379″ でアクセスできます。
    • ネットワーク名が、割り当たっているIPを参照するには、 “docker_network.sh” を実行すると参照できます。

Leave a Reply

*