コラム

[Docker]AzureのDockerコンテナにCPU数を設定

今回はAzureのDockerコンテナにCPU数、メモリ上限設定が正常に出来るか試してみたいと思います。

docker-compose.ymlファイルを用意

version: '3.8'
services: 
  db:
    image: postgres
    container_name: db
    ports:
      - 5432:5432
    environment:
      - POSTGRES_DB=${DB_NAME:-postgres}
      - POSTGRES_USER=${DB_USER:-postgres}
      - POSTGRES_PASSWORD=${DB_PASSWORD:-password}
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4g

postgresqlをコンテナ化します。

    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4g

ローカルホストの同一の設定方法でやってみます。
dbはcpuを2コア、メモリを4Gに設定。

起動してみる

※立ち上げる前に以下の作業が必要
・Azureに「docker login azure」でAzureにログインしておく。
・Azure上にコンテキストを作成しておく。
・「docker context use コンテキスト名」で使用コンテキストをAzureで作成したコンテキストにしておく。

「docker compose up」で起動

起動が完了したら、コンテナ情報を見てみる。
「docker ps」で動作しているコンテナを確認

「docker inspect コンテナID」でコンテナ情報取得

{
    "ID": "docker-azure-cpu-sample_db",
    "Status": "Running",
    "Image": "postgres",
    "HostConfig": {
        "RestartPolicy": "any",
        "CPUReservation": 2,
        "CPULimit": 2,
        "MemoryReservation": 4294967296,
        "MemoryLimit": 4294967296,
        "AutoRemove": false
    },
    "Ports": [
        {
            "HostPort": 5432,
            "ContainerPort": 5432,
            "Protocol": "tcp",
            "HostIP": "52.226.6.153"
        }
    ],
    "Config": {
        "Env": {
            "POSTGRES_DB": "postgres",
            "POSTGRES_PASSWORD": "password",
            "POSTGRES_USER": "postgres"
        }
    },
    "Platform": "Linux"
}

CPUReservationとCPULimitに2が設定。
MemoryReservationとMemoryLimitに4294967296が設定。
正常に設定されている事が確認できます。

cpusに1以下(0.5)の値を設定してみる

{
    "ID": "docker-azure-cpu-sample_db",
    "Status": "Running",
    "Image": "postgres",
    "HostConfig": {
        "RestartPolicy": "any",
        "CPUReservation": 0.5,
        "CPULimit": 0.5,
        "MemoryReservation": 4294967296,
        "MemoryLimit": 4294967296,
        "AutoRemove": false
    },
    "Ports": [
        {
            "HostPort": 5432,
            "ContainerPort": 5432,
            "Protocol": "tcp",
            "HostIP": "20.120.60.173"
        }
    ],
    "Config": {
        "Env": {
            "POSTGRES_DB": "postgres",
            "POSTGRES_PASSWORD": "password",
            "POSTGRES_USER": "postgres"
        }
    },
    "Platform": "Linux"
}

普通に0.5に設定できますね。この場合のスペックと料金はどうなるのか疑問ですね。
分かり次第、追加で記述しようと思います。

今回はAzureのコンテナのCPUとメモリを設定してみました。想定通りに設定できる事が確認できましたが、
CPUを1未満にした場合のスペック、料金がどうなるのか分っていないので調査し今後記事にしようと思います。

この記事をシェアする
  • Facebookアイコン
  • Twitterアイコン
  • LINEアイコン

お問い合わせ ITに関するお悩み不安が少しでもありましたら、
ぜひお気軽にお問い合わせください

お客様のお悩みや不安、課題などを丁寧に、そして誠実にお伺いいたします。

お問い合わせ
お電話でのお問い合わせ 03-5820-1777(平日10:00〜18:00)
よくあるご質問