TheKoguryo's 기술 블로그

 Version 2024-11-29

6.2 CLI로 Container Instance 만들기

OCI CLI, SDK, REST API 등을 통해 OCI 자원을 관리할 수 있습니다. OCI CLI로 Container Instance를 생성하는 방법을 확인해 봅니다. 편의상 CLI 서브 파라미터 보다는 JSON 메시지 하나를 만들어 사용하였습니다. 해당 JSON 메시지를 REST API를 통해 요청시도 사용 가능합니다.

OCI CLI로 Container Instance 만들기
  1. 필요하면 사용할 요청 JSON 샘플 메시지를 생성하여 참조합니다.

    oci container-instances container-instance create --generate-full-command-json-input > sample.json
    
  2. 생성에 필요한 값을 미리 확인합니다.

    • compartmentId: Container Instance를 생성할 대상 Compartment의 OCID

    • availabilityDomain: 아래 명령 또는 OCI 콘솔에서 Availability Domain의 name 확인

      $ oci iam availability-domain list
      {
        "data": [
          {
            "compartment-id": "ocid1.tenancy.oc1..aaaaaaaa______",
            "id": "ocid1.availabilitydomain.oc1..aaaaaaaa______",
            "name": "hoLX:AP-CHUNCHEON-1-AD-1"
          }
        ]
      }
      
    • vnics.subnetId: Container Instance가 사용할 Subnet의 OCID

  3. 생성을 위한 JSON 요청 파일을 만듭니다.

    • 이전 장에서 OCI 콘솔에서 생성한 내용을 동일한 설정으로 이번에는 CLI를 통해서 생성합니다.

    • 이전 인스턴스가 있는 경우, 호스트명(vnics.hostnameLabel)과 Private IP(vnics.privateIp)만 겹치지 않게 변경합니다.

    • 2번에서 확인한 각 항목을 본인 환경값으로 변경

      {
        "displayName": "wordpress",  
        "compartmentId": "ocid1.compartment.oc1..aaaaaaaa_____",
        "availabilityDomain": "hoLX:AP-CHUNCHEON-1-AD-1",
        "shape": "CI.Standard.E4.Flex",
        "shapeConfig": {
          "ocpus": 2,
          "memoryInGBs": 8
        },  
        "vnics": [
          {
            "subnetId": "ocid1.subnet.oc1.ap-chuncheon-1.aaaaaaaa_____",
            "isPublicIpAssigned": true,
            "privateIp": "10.0.0.102",
            "hostnameLabel": "wordpress-2"
          }
        ],
        "containers": [
          {
            "displayName": "mysql",
            "imageUrl": "mysql:8.0.31",
            "environmentVariables": {
              "MYSQL_DATABASE": "wordpress",
              "MYSQL_ROOT_PASSWORD": "wordpressonmysql",
              "MYSQL_PASSWORD": "wordpress",
              "MYSQL_USER": "wordpress"        
            },
            "resourceConfig": {
              "vcpusLimit": 1,
              "memoryLimitInGBs": 4
            },
            "arguments": [
              "--default-authentication-plugin=mysql_native_password"
            ]
          },
          {
            "displayName": "wordpress",
            "imageUrl": "wordpress:latest",
            "environmentVariables": {
              "WORDPRESS_DB_HOST": "127.0.0.1",
              "WORDPRESS_DB_NAME": "wordpress",
              "WORDPRESS_DB_USER": "wordpress",
              "WORDPRESS_DB_PASSWORD": "wordpress"        
            },
            "resourceConfig": {
              "vcpusLimit": 1,
              "memoryLimitInGBs": 4
            }
          }    
        ]
      }  
      
  4. CLI로 Container Instance를 생성합니다.

    oci container-instances container-instance create --from-json=file://wordpress.json
    
    • 생성요청 결과

      $ oci container-instances container-instance create --from-json=file://wordpress.json 
      {
        "data": {
          ...
        },
        "etag": "78a83e80b952c63142ce72ebccdeccbf6706f298bff711ac164530d97a1f8ea4",
        "opc-work-request-id": "ocid1.computecontainerworkrequest.oc1.ap-chuncheon-1.ab4w4ljrnukka4ce4kirehpiwgz7m6e3446exb3nbg6vty2qvgdh6suivpia"
      }
      
  5. 콘솔에서 생성여부를 확인합니다.

    image-20230511173651155



이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.

Last updated on 11 May 2023