- 03-5820-1777平日10:00〜18:00
- お問い合わせ
今回は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未満にした場合のスペック、料金がどうなるのか分っていないので調査し今後記事にしようと思います。